0

مفاهیم پایه برنامه نویسی تحت شبکه

 
amirpetrucci0261
amirpetrucci0261
کاربر طلایی1
تاریخ عضویت : تیر 1388 
تعداد پست ها : 27726
محل سکونت : http://zoomstar.ir/

مفاهیم پایه برنامه نویسی تحت شبکه

در این مقاله با مفاهیم پایه و ابتدایی که برای برنامه نویسی تحت شبکه به آنها نیاز خواهید داشت را بررسی میکنیم

کلاس IPAddress

از این کلاس برای بیان کردن یک آدرس IP استفاده میکنیم


این کلاس متدی به نام Parse دارد که یک رشته را به یک شیء IPAddress تبدیل میکند

IPAddress local = IPAddress.Parse("127.0.0.1");

کلاس IPEndPoint

از این کلاس برای مشخص کردن یک نود (یک کامپیوتر) در شبکه استفاده می شود. برای ایجاد شیء از این کلاس به یک شیء IPAddress و یک شماره پورت نیاز داریم :

IPAddress local = IPAddress.Parse("127.0.0.1");
IPEndPoint localEP = new IPEndPoint(local, 8000);

کلاس IPHostEntry

برای نگهداری اطلاعات مربوط به یک هاست ( کامیوتر) استفاده میشود

IPAddress local = IPAddress.Parse("127.0.0.1");
IPHostEntry iep = Dns.GetHostEntry(local);

برای درک متد Dns.GetHostEntry به قسمت DNS مراجعه نمایید.(فعلا همینقدر بدانیم که DNS یا domain name service وظیفه تبدیل نام به آدرس IP و بالعکس را برعهده دارد. در مثال بالا این متد مجموعه از اطلاعات مثل آدرس IP و نامهای مستعار و .... را درون شیء iep میریزد )


IPHostEntry.AddressList حاوی آرایه ای از IP آدرسهایی است که به این شیء اختصاص یافته است


( همانطور که میدانیم ممکن است یک کامپیوتر مثلا با داشتن چند کارت شبکه ، به چند شبکه مجزا یا مرتبط متصل باشد و چند آدرس IP متفاوت داشته باشد)


در مثال بالا آدرسهای IP کامپیوتر ما در آرایه ذخیره شده اند و به این نحو قابل دسترسی اند :

IPAddress first = iep.AddressList[0];
firstIP = iep.AddressList[0].ToString();

IPAddress.Aliases آرایه ای از رشته هاست حاوی نامهای مستعاری که به هاست مورد نظر اختصاص یاقته اند

foreach (string str in iep.Aliases)
Console.WriteLine(str);

IPAddress.HostName حاوی نام هاست مورد نظر است.

استفاده از DNS در برنامه نویسی شبکه

کلاس Dns که در System.Net قرار دارد به ما امکان کار با DNS ها را میدهد .


این کلاس حاوی متدهای static زیر است :


GetHostName این متد نام کامپیوتر فعلی را در یک رشته برمیگرداند

string hostName = Dns.GetHostName();

متد GetHostByName نام یک هاست را گرفته و یک شیء IPHostEntry برمیگرداند.


برنامه زیر را در نظر بگیرید :

string Hostname = Console.ReadLine();
IPHostEntry iep = Dns.GetHostByName(Hostname);
foreach (IPAddress ip in iep.AddressList)
Console.WriteLine(ip.ToString());

این برنامه نام یک هاست را از کاربر میگیرد و آدرسهای IP اختصاص یافته به آن را برمیگرداند. مثلا اگر کاربر آدرس www.microsoft.com را وارد کند، آدرسهای زیر را دریافت میکند :

207.46.197.102
207.46.230.220
207.46.230.218
207.46.230.219
207.46.197.100
207.46.197.113

چنانچه آدرس IP را داشته باشیم و بخواهیم نام هاستی که آن آدرس IP را دارد به دست بیاوریم ، از متد GetHostByAddress استفاده میکنیم.

string HostIP = Console.ReadLine();
IPHostEntry iep = Dns.GetHostByAddress(IPAddress.Parse(HostIP));
Console.WriteLine(iep.HostName);
foreach (string name in iep.Aliases)
Console.WriteLine(name);

چهارشنبه 10 آذر 1389  11:13 PM
تشکرات از این پست
دسترسی سریع به انجمن ها