获取网站的外部IP地址

时间:2013-04-22 18:53:23

标签: c# .net dns ip-address

我见过很多方法可以轻松检索机器或网站的内部IP地址。但是,我似乎无法找到一种检索外部IP地址的好方法。

澄清一下,如果我提供像bitbucket.org这样的网址,我想获得bitbucket的外部IP地址。是否有一个可以轻松实现此目的的Web服务?

编辑:假设,对于这种情况,我与bitbucket.org在同一网络上。

我正在填写一个数据库,其中包含我们公司管理的所有网站的信息。我们希望跟踪信息并记录具体数据的周期性变化。该程序将部署在与运行网站的服务器所在的同一网络上的一台本地服务器上。我认为检索每个站点的外部IP地址的唯一好方法是使用外部Web服务。

5 个答案:

答案 0 :(得分:7)

您可以使用System.Net.Dns.GetHostEntry()按主机名获取IP地址。

答案 1 :(得分:3)

您可以查询外部公共DNS服务器,例如谷歌的收视率为8.8.8.8。从命令行

nslookup bitbucket.org 8.8.8.8

或在Linux dig bitbucket.org @8.8.8.8中。有一些C#库可以让你查询特定的DNS服务器,例如DnsNet建立在此CodeProject article之上(找到了搜索 - 我没有尝试过推荐它)。这确实依赖谷歌继续服务,但这似乎是安全的。

答案 2 :(得分:1)

您可以使用ping实用程序。在Windows中,通过按Windows键+ r并键入

打开命令窗口
ping bitbucket.org

答案 3 :(得分:0)

我认为您可以使用Dns.GetHostAddresses来获取IP地址。来自MSDN文档:

  

GetHostAddresses方法向DNS服务器查询与主机名关联的IP地址。

更新:

如果您正在寻找网络服务,请尝试查看whoisxmpapi.com。从this sample可以看出,它们确实在XML输出中提供了名称服务器IP地址。然后,您可以使用类似this的内容直接从名称服务器获取IP地址!

答案 4 :(得分:-1)

如果您尝试使用“wan”ip而不是本地IP,则可以尝试这样的操作。 您还可以在Web服务中添加这样的代码并将其添加到PC bitbucket(如果它确实在您的网络上,并且您可以访问安装Web服务)。

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