如何检测本地网络上其他设备的 IP 地址?
Posted
技术标签:
【中文标题】如何检测本地网络上其他设备的 IP 地址?【英文标题】:How can I detect the IP addresses of other devices on the local network? 【发布时间】:2011-09-06 19:04:17 【问题描述】:我已经使用此代码检测到我的计算机的本地 IP 地址(使用套接字):
Function Ip_Local : String;
Var Acces_Sock : TCustomIpClient;
Begin
Acces_Sock := TCustomIpClient.Create(Nil);
Try
Result := Acces_Sock.LocalHostAddr
Finally
Acces_Sock.Free;
End;
End;
如何检测路由器的内部 LAN IP 地址,如果可能,检测任何连接 LAN 的设备(如 DVR)?
【问题讨论】:
根据定义,默认网关地址已知,通过IPHelper API询问,其他设备必须发现,使用UPnP或ICMP。 【参考方案1】:使用印地:
function CsiGetRemoteIpAddress(const pHostName: string): string;
begin
TIdStack.IncUsage;
try
Result := GStack.ResolveHost(pHostName);
finally
TIdStack.DecUsage;
end;
end;
【讨论】:
本例中的主机名是什么 - ? 如果 pHostName 是 mycomputer 主机名,我的意思是 ResolveHost(pHostName) 解析 mycomputer 的 IP 地址。我不知道路由器主机名。 ok - ResolveHost(pHostName) 不解析给定路由器主机名的 IP 地址,它仅用于计算机主机名。至少这是我到目前为止所得到的。以上是关于如何检测本地网络上其他设备的 IP 地址?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式通过 Wifi 获取连接在同一网络上的其他设备的 IP 地址?
如何在本地 IP 地址上创建网页,以便连接到同一 Wi-Fi 网络的其他人可以访问它?
域名IP地址指向:** 花生壳客户端IP:** 经检测,您的域名已激活并指向正确。 IP与外网ip不一致,为啥?