淡
淡淡的笑
Unregistered / Unconfirmed
GUEST, unregistred user!
我本机上有多网卡(分配了3个IP:2个固定IP,1个局网IP).如果编程实现获得本机的多个IP?(我只能取得一个)<br><br>// 此function获得 192.168.0.1<br><br>function TForm1.LookupIP: String;<br>type<br> TaPInAddr = array [0..10] of PInAddr;<br> PaPInAddr = ^TaPInAddr;<br>var<br> phe : PHostEnt;<br> pptr : PaPInAddr;<br> Buffer : array [0..63] of char;<br> I : Integer;<br> GInitData : TWSADATA;<br><br>begin<br> WSAStartup($101, GInitData);<br> Result := '';<br> GetHostName(Buffer, SizeOf(Buffer));<br> phe :=GetHostByName(buffer);<br> if phe = nil then Exit;<br> pptr := PaPInAddr(Phe^.h_addr_list);<br> I := 0;<br> while pptr^ <> nil do begin<br> result:=StrPas(inet_ntoa(pptr^^));<br> Inc(I);<br> end;<br> WSACleanup;<br>end;<br><br>// 此function获得 211.163.117.xxx<br><br>function TForm1.GetHostAddress: string;<br>var<br> wd: TWSAData;<br> phe: PHostEnt;<br>begin<br> if 0 <> WSAStartup(MakeWord(2, 0), wd) then<br> raise Exception.Create('初始化 WinSock 失败!')<br> else<br> try<br> SetLength(Result, 255);<br> if 0 <> gethostname(PChar(Result), 255) then<br> raise Exception.Create('无法取得本计算机名称!');<br> SetLength(Result, StrLen(PChar(Result)));<br> phe := gethostbyname(PChar(Result));<br> if nil = phe then<br> raise Exception.Create('无法解析本计算机名称到IP地址!');<br> //听资料说修改此处代码可适用于多个IP情况<br> Result := inet_ntoa(PInAddr(phe.h_addr^)^);<br> finally<br> WSACleanup;<br> end;<br>end;<br><br>如题目,要如何取得所有IP(我是固定IP)? 请指教.谢谢!!!