获取网站的外部IP地址
本文关键字:IP 地址 外部 网站 获取 | 更新日期: 2023-09-27 18:10:18
我见过许多轻松检索机器或网站的内部IP地址的方法。然而,我似乎找不到一个好方法来检索外部IP地址。
澄清一下,如果我提供一个像bitbucket.org这样的URL,我想获得bitbucket的外部IP地址。有没有一种网络服务可以很容易地做到这一点?
EDIT:假设,在这种情况下,我和bitbucket.org在同一个网络上。
我正在把我们公司管理的所有网站的信息填入数据库。我们希望跟踪信息,并注意到特定数据的周期性变化。该程序将部署在与网站运行服务器相同网络上的一个本地服务器上。我认为,为每个站点检索外部IP地址的唯一好方法是使用外部web服务。
可以使用System.Net.Dns.GetHostEntry()
通过主机名获取IP地址
您可以查询外部公共DNS服务器,例如Google的8.8.8.8。从命令行
nslookup bitbucket.org 8.8.8.8
或在Linux dig bitbucket.org @8.8.8.8
中。有一些c#库可以让你查询特定的DNS服务器,例如基于这篇CodeProject文章构建的DnsNet(发现搜索-我没有尝试过推荐它)。不过,这确实依赖于谷歌继续提供这项服务,但这似乎是安全的。
您可以使用ping实用程序。在windows中,通过按windows键+ r打开命令窗口,然后输入
ping bitbucket.org
我认为你可以直接使用Dns。GetHostAddresses获取IP地址。来自MSDN文档:
更新:GetHostAddresses方法向DNS服务器查询与主机名相关联的IP地址。
如果您正在寻找web服务,请尝试查看whoisxmpapi.com。从这个示例中可以看到,它们确实在XML输出中提供了名称服务器IP地址。然后,您可以使用类似的方法直接从名称服务器获取IP地址!
如果您试图获得您的"wan" ip而不是您的本地ip,您可以尝试这样做。你也可以在webservice中添加这样的代码,并将其添加到PC的bitbucket上(如果它真的在你的网络上,并且你可以访问安装webservices)。
Public Shared ReadOnly Property IpAddress() As String
Get
If String.IsNullOrWhiteSpace(_ipAddress) Then
Try
Dim webClient As New WebClient
Dim result As String = webClient.DownloadString("http://checkip.dyndns.org")
Dim fields = result.Split(" ")
_ipAddress = fields.Last
_ipAddress = _ipAddress.Replace("</body></html>", "")
Catch ex As Exception
_ipAddress = "errorFindingIp"
End Try
End If
Return _ipAddress
End Get
End Property