uses Winapi.WinInet, IdIcmpClient,IdGlobal;
function Ping: Boolean;
var
IcmpClient: TIdIcmpClient;
begin
Button1.Enabled := False;
Result:= False;
if ftCheckInternetPing then
begin
IcmpClient:= TIdIcmpClient.Create(Nil);
IcmpClient.ReceiveTimeout:= 2000; // 1~3초 사이면 충분 합니다.
IcmpClient.Host:= '8.8.8.8'; // 구글 아이피로 설정 해뒀고 다른데 쓰셔도 됩니다.
IcmpClient.PacketSize:= 24;
try
IcmpClient.Ping;
if IcmpClient.ReplyStatus.ReplyStatusType = rsEcho then
Result:= true;
finally
IcmpClient.Free;
end;
end;
Button1.Enabled := True;
end;
-----------------------------------------------------------------------------
function IsNetworkAlive(var lpdwFlags: DWORD): HRESULT; stdcall; external 'SENSAPI.DLL';
const
NETWORK_ALIVE_LAN = $1;
NETWORK_ALIVE_WAN = $2;
NETWORK_ALIVE_AOL = $4;
function ftCheckInternetPing : boolean;
var
dRet : DWORD;
begin
if IsNetworkAlive(dRet) = 0 then
Result := False // ShowMessage('연결된 네트워크가 없습니다.')
else
begin
if (dRet and NETWORK_ALIVE_LAN) <> 0 then
Result := True;//ShowMessage('LAN 연결');
if (dRet and NETWORK_ALIVE_WAN) <> 0 then
Result := True; //ShowMessage('WAN 연결');
if (dRet and NETWORK_ALIVE_AOL) <> 0 then
Result := True; //ShowMessage('AOL 네트워크 연결');
end;
end;
'Delphi Tip > 인터넷' 카테고리의 다른 글
웹 브라우져 URL주소 실행 (0) | 2023.07.06 |
---|---|
웹브라우저에 HTML 코드 밀어넣기 (0) | 2021.12.15 |
델파이 JSON 생성 (서브아이템포함) (0) | 2021.12.14 |
idHTTP JSON Post 방법 (0) | 2021.12.13 |
IdHTTP App ID, Key 존재시 (0) | 2021.12.10 |
댓글