如何检测本地网络上其他设备的 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不一致,为啥?

通过Wireshark抓取直连设备的IP地址

如何在 Android 上以编程方式从 Mac 地址获取 IP 地址?

Python中本地网络的IP地址/主机名列表