全部分数都给你们(300分)

  • 主题发起人 主题发起人 edren
  • 开始时间 开始时间
固定指定都可以,不要HTTP请求,HTTP的类似东西我已经写过了,不理想
 
用socket行不?
procedure TForm1.ClientSocketRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage('收到: ' + Socket.ReceiveText + 'IP: ' + Socket.LocalAddress);
end;
这个Socket.LocalAddress不是本地的IP地址么?
 
那就比较困难了,有时间研究一下
 
要的是丢个包到某个网络地址上去然后在返回包里取IP
 
楼主的意思是向一个网段发出IP包,然后验证返回的信息吧...
 
意思是从返回的包里取出自己的IP,目的是取IP,前提是通过丢数据包
 
GetPeerSocket和GetSockName什么的函数,
 
//抄了一个你看看吧

function GetIP:string;
var
WSAData:TWSAData;
HostName:array[0..MAX_COMPUTERNAME_LENGTH] of Char;
HostEnt:PHostEnt;
LastIP:PInAddr;
IPList:^PInAddr;
begin
result:='';
if 0=WSAStartup(MAKEWORD(1,1), WSAData) then
try
if 0=gethostname(HostName, MAX_COMPUTERNAME_LENGTH+1) then
begin
HostEnt:=gethostbyname(HostName);
if HostEnt<>nil then
begin
IPList:=Pointer(HostEnt^.h_addr_list);
repeat
LastIP:=IPList^;
INC(IPList);
until IPList^=nil;
if LastIP<>nil then
result:=inet_ntoa(LastIP^);
end;
end;
finally
WSACleanup;
end;
end;
 
TO xjzcg 你这代码贴了干嘛!说了不要贴废话了,这样的代码我有很多,而且我也会搜索的!
不要再贴这样的代码 拜托+谢谢
 
接受答案了.
 
后退
顶部