获取网站的外部IP地址

本文关键字:IP 地址 外部 网站 获取 | 更新日期: 2023-09-27 18:10:18

我见过许多轻松检索机器或网站的内部IP地址的方法。然而,我似乎找不到一个好方法来检索外部IP地址。

澄清一下,如果我提供一个像bitbucket.org这样的URL,我想获得bitbucket的外部IP地址。有没有一种网络服务可以很容易地做到这一点?

EDIT:假设,在这种情况下,我和bitbucket.org在同一个网络上。

我正在把我们公司管理的所有网站的信息填入数据库。我们希望跟踪信息,并注意到特定数据的周期性变化。该程序将部署在与网站运行服务器相同网络上的一个本地服务器上。我认为,为每个站点检索外部IP地址的唯一好方法是使用外部web服务。

获取网站的外部IP地址

可以使用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