none
請問各位大大我已經停用IPV6 但GetMyIP()還是抓到::1,請問該如何解? RRS feed

  • 問題

  • 請問各位大大我已經停用IPV6 但GetMyIP()還是抓到::1,請問該如何解?我要的是IPV4

    以下是GetMyIP函數

     Function GetMyIP() As String
            Dim ipE As String = "", ii As Int16
            GetMyIP = "127.0.0.1"
            Dim IpA() As IPAddress = Dns.GetHostEntry(Dns.GetHostName).AddressList 'ipE.AddressList
            For ii = 0 To IpA.GetUpperBound(0)
                ipE = IpA(ii).ToString ' "IP Address " & ii.ToString & " " & IpA(ii).ToString
            Next
            GetMyIP = ipE
        End Function

    感謝各位大大

    2021年4月14日 上午 02:42

所有回覆

  • 你好,你的代碼是向DNS查問資訊,可能DNS還有 IPV6 相關的資訊保存了。可能你要等它 TTL 過了,再查問才會沒有。

    而且同時你要從你的電腦移除IPV6,而不是停用

    https://docs.microsoft.com/zh-tw/dotnet/api/system.net.dns.gethostentry?view=net-5.0

    GetHostEntry如果本機電腦未安裝 ipv6,則會從方法的結果篩選 ipv6 位址。 如此一來, IPHostEntry 如果參數只有 IPv6 結果可用,就可以取回空的實例 address 。


    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for .NET (2003-2017)
    Microsoft rMVP
    My MSMVP Blog
    請記得將對您有幫助的回覆 標示為解答 以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.


    2021年4月22日 上午 07:47