簡體   English   中英

獲取網站的外部IP地址

[英]Get external IP address of a website

我已經看到很多方法可以輕松檢索機器或網站的內部IP地址。 但是,我似乎無法找到檢索外部IP地址的好方法。

為了澄清,如果我提供像bitbucket.org這樣的URL,我想獲得bitbucket的外部IP地址。 有沒有可以輕松實現此目的的Web服務?

編輯:假設,對於這種情況,我與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地址。

更新:

如果您正在尋找網絡服務,請嘗試查看whoisxmpapi.com 這個示例中可以看出,它們確實在XML輸出中提供了名稱服務器IP地址。 然后,您可以使用像這樣直接從域名服務器獲取IP地址!

如果你試圖獲得“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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM