作業中のアプリケーションがあり、DNSが原因でISPがダウンしていると起動が遅くなる可能性があります。私のISPは昨日3時間ダウンしていたので、起動が常に遅いことがわかるまで、追加したこのコードについてはあまり考えませんでした。このコードはあなたのIPアドレスを返すことになっています。リンクを読んだところ、すぐにそれが必要であることがわかりましたが、少なくとも私のマシンではそうではありません。
ああ、そして昨日インターネットがダウンする前に、私は(oymoron)をXP SP3にアップグレードしました、そして他の問題がありました。
だから私の質問/リクエスト:
- 私はこれを正しくやっていますか?
- これをマシンで実行した場合、IPアドレスを返すのに39秒かかりますか?それは私のものです。
もう1つの注意点として、パケットキャプチャを実行しましたが、最初の要求は送信されませんでしたが、2番目の要求は送信され、すぐに応答されました。ですから、問題は、脳以外に、私が見逃しているXPSP3で何が起こったのかということです。
最後にもう1つ。FQDNを解決すれば、すべて問題ありません。
Public Class Form1
'http://msdn.microsoft.com/en-us/library/system.net.dns.gethostaddresses.aspx
'
'excerpt
'The GetHostAddresses method queries a DNS server
'for the IP addresses associated with a host name.
'
'If hostNameOrAddress is an IP address, this address
'is returned without querying the DNS server.
'
'When an empty string is passed as the host name,
'this method returns the IPv4 addresses of the local host
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim stpw As New Stopwatch
stpw.Reset()
stpw.Start()
'originally Dns.GetHostEntry, but slow also
Dim myIPs() As System.Net.IPAddress = System.Net.Dns.GetHostAddresses("")
stpw.Stop()
Debug.WriteLine("'" & stpw.Elapsed.TotalSeconds)
If myIPs.Length > 0 Then Debug.WriteLine("'" & myIPs(0).ToString)
'debug
'39.8990525
'192.168.1.2
stpw.Reset()
stpw.Start()
'originally Dns.GetHostEntry, but slow also
myIPs = System.Net.Dns.GetHostAddresses("www.vbforums.com")
stpw.Stop()
Debug.WriteLine("'" & stpw.Elapsed.TotalSeconds)
If myIPs.Length > 0 Then Debug.WriteLine("'" & myIPs(0).ToString)
'debug
'0.042212
'63.236.73.220
End Sub
End Class