如何获得本机ip ( 积分: 50 )

  • 主题发起人 主题发起人 可爱小猪
  • 开始时间 开始时间
这个是你要发送的ip
 
你去试过了么?
不要想当然,OK?
 
有没有搞错
这个不行的
不然还用问么

 
果然是猪!
没测试过的代码我会贴出来么?

服务器接受到消息的时候,里面是不是有发送客户端的IP和Port的?
客户端显示的,和服务器端显示的客户端IP和Port一致,你还说这个不是客户端发送的端口?
 
直接用Indy Misc中的IdIPWatch,你用UDP发送数据总是在本机上执行的啊,
所以可用: IdIPWatch.LocalIP ;
 
要是有nat 转换不就不行了
楼上的说的也不行的
 

我看你是要这个吧,有全部源码.

是在我的邮箱里的,用网际快车新建下载任务的地址栏输入:

http://m150.mail.126.com/coremail/fcg/ldmsapp/windows.rar?lettsid=VATZcpFGftSAyzQJ&mid=1tbiGQhJoEH3UvE7swAAsl%250A25%250A8388762%250A1&funcid=readpart&part=3&filename=windows.rar&download=1

里面应该有你要的,花了我不少的TIME



 
晕了 连接错误啊
 
简单,这样就可以了
uses ShellAPI, WinSock;
procedure GetIPList(IPs: TStrings);
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
WSAData: TWSAData;
HostEnt: PHostEnt;
HostName: array[0..MAXBYTE] of Char;
i: Integer;
paddr: PaPInAddr;
begin
WSAStartup($101, WSAData);
IPs.Clear;
GetHostName(HostName, SizeOf(HostName));
HostEnt := GetHostByName(HostName);
if HostEnt = nil then Exit;
paddr := PaPInAddr(HostEnt^.h_addr_list);
i := 0;
while paddr^ <> nil do
begin
IPs.Add(inet_ntoa(paddr^^));
Inc(i);
end;
WSACleanup;
end;
 
用iphelp函数,msdn上有
 
看起来还真多呢~
 
这个不行的
 
散分了
没有答案
 
多人接受答案了。
 
后退
顶部