請問一下,如何得知是否網路已經連線? |
尚未結案
|
tailen
中階會員 發表:82 回覆:109 積分:63 註冊:2002-04-08 發送簡訊給我 |
各位大大好:請問一下要如何得知該台電腦是否可以連上internet?
記得好像有在其他文章中看到可以利用check yahoo的方式,除此之外是否有其他的方法!謝謝各位大大的指教! check yahoo code:
procedure TForm1.Button1Click(Sender: TObject);
begin
if InternetCheckConnection('http://www.yahoo.com/', 1, 0) then
edit1.text:= 'Connected'
else
edit1.text:= 'Disconnected';
end;
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
先取得目前的ip再進行分析
uses Winsock; {...} function getIPs: Tstrings; type TaPInAddr = array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; Buffer: array[0..63] of Char; I: Integer; GInitData: TWSAData; begin WSAStartup($101, GInitData); Result := TstringList.Create; Result.Clear; GetHostName(Buffer, SizeOf(Buffer)); phe := GetHostByName(buffer); if phe = nil then Exit; pPtr := PaPInAddr(phe^.h_addr_list); I := 0; while pPtr^[I] <> nil do begin Result.Add(inet_ntoa(pptr^[I]^)); Inc(I); end; WSACleanup; end;本地的ip應是127.0.0.1 如果不是的話, 那就己經連上internet了 努力會更接近成功
------
努力會更接近成功 |
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
to pceyes 兄,如果是bulid的ip您的方法就不行的!
to tailen 兄,你的方法有一定的局限性,如果你所指向的网站挂了或则网络dns有问题等都会又可能连接不上的 方法如下: uses WinInet; function GetOnlineStatus : Boolean;
var ConTypes : Integer;
begin
ConTypes := INTERNET_CONNECTION_MODEM INTERNET_CONNECTION_LAN INTERNET_CONNECTION_PROXY;
if (InternetGetConnectedState(@ConTypes, 0) = False)
then Result := False
else Result := True;
end;
|
tailen
中階會員 發表:82 回覆:109 積分:63 註冊:2002-04-08 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |