S
summen
Unregistered / Unconfirmed
GUEST, unregistred user!
uses IdWinsock;
function LocalIP : string;
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); //<=经调试后,发现执行到这里就出错了,弹出CPU检查窗口。
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
if i=0
then result:=StrPas(inet_ntoa(pptr^^))
else result:=result+','+StrPas(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
以上代码在我的电脑上执行出错了,是否配置错误,什么原因?
还有更好的测试本机 上internet的IP 地址的方法吗?
function LocalIP : string;
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); //<=经调试后,发现执行到这里就出错了,弹出CPU检查窗口。
Result := '';
GetHostName(Buffer, SizeOf(Buffer));
phe :=GetHostByName(buffer);
if phe = nil then Exit;
pptr := PaPInAddr(Phe^.h_addr_list);
I := 0;
while pptr^ <> nil do begin
if i=0
then result:=StrPas(inet_ntoa(pptr^^))
else result:=result+','+StrPas(inet_ntoa(pptr^^));
Inc(I);
end;
WSACleanup;
end;
以上代码在我的电脑上执行出错了,是否配置错误,什么原因?
还有更好的测试本机 上internet的IP 地址的方法吗?