获取当前ISP供应商分给你的IP地址(100分)

  • 主题发起人 主题发起人 wubochao
  • 开始时间 开始时间
W

wubochao

Unregistered / Unconfirmed
GUEST, unregistred user!
有那位可以告诉我用什么函数可以获取当前ISP供应商分给你的IP地址。
Thank you very much.
 
如下:
uses winsock;
function localIp:string;
type tapinaddr=array[0..10] of pinaddr;
var .....
begin
wsastartup($101,ginitdata);
result:='';
gethostname(buffer,sizeof(buffer));
phe:=gethostbyame(buffer);
if phe<>nil then
begin
pptr:=papinaddr(phe^.h_addr_list);
i:=0;
while pptr^<>nil do
begin
result:=strpas(inet_ntoa(pptr^^));
inc(i);
end;
end;
wsacleanup;
end;
 
请给出完整的代码。最好加上说明。
 
uses
WinSock;

function GetIPAddress: string;
var
phoste:PHostEnt;
Buffer:array[0..100] of char;
WSAData:TWSADATA;
begin
result:='';
if WSASTartup($0101, WSAData) <> 0 then exit;
GetHostName(Buffer,Sizeof(Buffer));
phoste:=GetHostByName(buffer);
if phoste = nil then
begin
result:='127.0.0.1';
end
else
result:=StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^));
WSACleanup;
end;
 
如下:
uses winsock;
function localIp:string;
type tapinaddr=array[0..10] of pinaddr;
var .....
begin
wsastartup($101,ginitdata);//初始化
result:='';
gethostname(buffer,sizeof(buffer));//得到主机名
phe:=gethostbyame(buffer);
if phe<>nil then
begin
pptr:=papinaddr(phe^.h_addr_list);//取ip地址列表
i:=0;
while pptr^<>nil do //有可能为多个ip地址
begin
result:=strpas(inet_ntoa(pptr^^));//取ip地址
inc(i);
end;
end;
wsacleanup;//释放
end;
够详细的了,因该可以看懂

 
(1)用RAS函数吧,很简单的。
(2)又或者新建一文本文件,写下:
<Script src="http://www.ipsearch.com.cn/locate.ips"></Script>
再把扩展名改为htm或html,然后打开就可以了。
(3)
 
wubochao:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。
 
wubochao:如果还想接着讨论请定期提前自己的帖子,如果不想继续讨论请结束帖子。

 
多人接受答案了。
 
后退
顶部