سلام
حقیقتش نمیخواستم این توضیح را اضافه کنم ولی گفتم بحث را یک کم کاملتر کنم....
=====
اغلب مواقع، در کدها و برنامه ها به جای آنکه IP را مستقیم از کاربر بگیریم از نام استفاده میکنیم.
یک رایانه یا سرور در شبکه میتوانید نام هم داشته باشد و همانطور که قبلاً هم گفتیم، هر رایانه میتواند چندین IP داشته باشد.
کلاسس Dns وظیفه ترجمه نام به IP را بر عهده دارد، یعنی ما وقتی به شبکه وصل هستیم نام یک رایانه در شبکه را میدهیم و IP هایش را تحویل میگیریم.
مثلاً اگر به شبکه اینترنت وصل باشیم میتوانیم نام www.microsoft.com را بدهیم و IP هایش را به دست آوریم.
با این کلاسس و کمی کد اضافه برنامه میتواند علاوه بر IP با نام هم تغذیه شود و کار کند و خودش خودکار از نام به IP برسد.
مثلاً کد زیر سعی میکند به همه IP های متناظر یک نام وصل شود و به اولین IP که کار کرد وصل شود و جستجو را تمام کند.
'VB.Net
Dim port As Integer = 80
Dim socket As System.Net.Sockets.Socket = Nothing
For Each ip As System.Net.IPAddress In System.Net.Dns.GetHostEntry("www.microsoft.com").A ddressList
Try
socket = _
New System.Net.Sockets.Socket( _
ip.AddressFamily, _
System.Net.Sockets.SocketType.Stream, _
System.Net.Sockets.ProtocolType.Tcp)
socket.Connect(New System.Net.IPEndPoint(ip, port))
Exit For
Catch
socket = Nothing
End Try
Next
If (socket IsNot Nothing) Then
'...
'...
socket.Close()
End If
//C#.Net
int port = 80;
System.Net.Sockets.Socket socket = null;
foreach(System.Net.IPAddress ip in System.Net.Dns.GetHostEntry("www.microsoft.com").A ddressList)
{
try
{
socket =
new System.Net.Sockets.Socket(
ip.AddressFamily,
System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
socket.Connect(new System.Net.IPEndPoint(ip, port));
break;
}
catch
{
socket = null;
}
}
if (socket != null)
{
//...
//...
socket.Close();
}
خود دوستان میتوانند هر کجا خواستند، IP را به طریقه فوق به دست اورند.