Win95 網路斷線偵測 |
尚未結案
|
LEO_HSU
一般會員 發表:2 回覆:5 積分:1 註冊:2005-05-28 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
try try see
function IsIPPresent: Boolean; type TaPInAddr = Array[0..10] of PInAddr; PaPInAddr = ^TaPInAddr; var phe: PHostEnt; pptr: PaPInAddr; Buffer: Array[0..63] of Char; I: Integer; GInitData: TWSAData; IP: String; begin WSAStartup($101, GInitData); Result := False; GetHostName(Buffer, SizeOf(Buffer)); phe := GetHostByName(buffer); FpCurrHostEnt := phe; if phe = nil then Exit; pPtr := PaPInAddr(phe^.h_addr_list); I := 0; while pPtr^[I] <> nil do begin IP := inet_ntoa(pptr^[I]^); Inc(I); end; FCurrentIP := IP; WSACleanup; Result := (IP <> '') and (IP <> '127.0.0.1'); end;努力會更接近成功
------
努力會更接近成功 |
LEO_HSU
一般會員 發表:2 回覆:5 積分:1 註冊:2005-05-28 發送簡訊給我 |
|
LEO_HSU
一般會員 發表:2 回覆:5 積分:1 註冊:2005-05-28 發送簡訊給我 |
Dear pceyes:
小弟已完成測試了,將測試心得跟大家分享,在這次我們使用Winsock API函式下在Win2000 & WinXP 與 Win95 所得的WinSock結構結果是不同的,在WinXP 與Win2000下當硬體斷線後WinSock的Address List會將本機Address更改為127.0.0.1 而在Win95則否,所以使用WSAStartup 在Win95中偵測硬體斷線是無法得知網路線已被拔除,但在WinXP & Win2000則可 以上跟大家分享 Thanks ! 感謝pceyes大大你提供的測試Code ^^
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |