درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
حسین احمدی
امتیاز: 215360
رتبه:3
343
265
413
2786
حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر

برنامه نویسی شبکه (Network Programming) در سی شارپ :: کار با آدرس های IP و Dns

تاریخ 15 ماه قبل
نظرات 0
بازدیدها 372
در محیط اینترنت و شبکه تمامی سرور ها و همچنین کلاینت به وسیله آدرسی به نام IP شناخته می شوند. در کنار IP یک نام دیگر نیز استفاده می شود که به آن Host Name یا Domain Name گفته می شود و هر Host Name به یک آدرس IP اشاره می کند. ارتباط HostName یا Domain Name را با IP مثل یک دفترچه تلفن می توان در نظر گرفت که نام هر شخص یک شماره تلفن مختص به خود را دارد و از روی نام شخص می توان شماره تماس آن شخص را پیدا کرد، Domain Name هم به همین صورت است و بوسیله نام Domain می توان آدرس IP یک سرور یا کلاینت را در محیط اینترنت یا شبکه پیدا کرد. مکانیزمی که بوسیله آن بر اساس نام Domain یا Host آدرس IP یک سیستم را مشخص می کنند DNS یا Domain Name System نام دارد. در این مطلب قصد داریم تا با کلاس هایی آشنا شویم که در زبان سی شارپ برای کار با آدرس های IP و DNS ها استفاده می شوند. آدرس IP در حال حاضر بر دو نسخه ارائه شده، نسخه 4 یا IPv4 و نسخه 6 یا IPv6. نسخه 4 یک مقدار 32 بیتی است و نسخه 6 یک مقدار 64 بیتی و مشخص است که بوسیله نسخه 6 می توان تعداد بیشتری سرور و کلاینت را در محیط اینترنت و شبکه آدرس دهی کرد.

در دات نت چندین کلاس وجود دارد که بوسیله آن ها می توان با آدرس های IP و Dns کار کرد. یکی از این کلاس ها IPAddress است که در فضای نام System.Net قرار دارد و نشان دهنده یک آدرس IP است. بوسیله این کلاس امکان Parse کردن یک آدرس IP از یک رشته، گرفتن IP در قالب آرایه ای از Byte و همچنین نمایش IP به صورت رشته را خواهیم داشت. در مثال زیر نحوه کار با این کلاس را میبینیم:

var ipAddress = IPAddress.Parse("192.168.1.120");
var ipBytes = ipAddress.GetAddressBytes();
Console.WriteLine(ipAddress.ToString()); // 192.168.1.120

کلاس IPAddress یکسری اعضای static دارد که می توان از آن ها برای برخی کارها استفاده کرد، برای مثال، فیلد Loopback آدرسی که بوسیله آن می توان به سیستمی برنامه بر روی آن در حال اجرا است پیامی ارسال کرد و فیلد Broadcast امکان ارسال پیام ها را به صورت گروهی در محیط شبکه می دهد:

Console.WriteLine(IPAddress.Loopback); // 127.0.0.1
Console.WriteLine(IPAddress.Broadcast); // 255.255.255.255

کلاس دیگری در فضای نام System.Net وجود دارد به نام IPHostEntry که اطلاعات یک Host را برای ما نگهداری می کند. اما قبل از اینکه از این کلاس استفاده کنیم با کلاسی آشنا می شویم به نام Dns، این کلاس یک متد استاتیک با نام GetHostEntry دارد که آدرس یک Host را گرفته و اطلاعات مربوط به به آن Host را در قالب IPHostEntry برای ما بر میگرداند (متد قدیمی برای اینکار Resolve بود که در نسخه های جدید با متد GetHostEntry جایگزین شده است):

IPHostEntry entry = Dns.GetHostEntry("tosinso.com");
Console.WriteLine(entry.HostName);
foreach(var ipAddress in entry.AddressList)
{
    Console.WriteLine(ipAddress);
}

با اجرای کد بالا خروجی زیر را دریافت خواهیم کرد:

tosinso.com
185.8.173.236

کلاس IPHostEntry خصوصیتی دارد با نام AddressList که لیستی از Address های IP مربوط به Host مشخص شده را برای ما بر میگرداند که در نمونه کد بالا بوسیله دستور foreach آدرس های مورد نظر را در خروجی چاپ کردیم.

اگر بخواهیم اطلاعات یک Host را بر اساس آدرس IP به دست بیاوریم کافیست به جای نام Host آدرس IP را به صورت زیر مشخص کنیم:

var entry = Dns.GetHostEntry(IPAddress.Parse("185.8.173.236"));
Console.WriteLine(entry.HostName);

کلاس IPAddress زمانی که قصد استفاده از Socket ها در سی شارپ را داشته باشیم کاربرد دارد.

نویسنده: حسین احمدی
منبع: ITpro
برچسب ها
ردیف عنوان
1 برنامه نویسی شبکه (Network Programming) در سی شارپ :: آشنایی با کلاس HttpClient
2 برنامه نویسی شبکه (Network Programming) در سی شارپ :: ارسال درخواست Post در کلاس HttpClient
3 برنامه نویسی شبکه (Network Programming) در سی شارپ :: کلاس های Uri و UriBuilder
4 برنامه نویسی شبکه (Network Programming) در سی شارپ :: کار با آدرس های IP و Dns
5 برنامه نویسی شبکه (Network Programming) در سی شارپ :: کلاس های TcpClient و TcpListener
6 برنامه نویسی شبکه (Network Programming) در سی شارپ :: پروتکل SMTP و ارسال ایمیل در سی شارپ
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات
هیچ نظری ارسال نشده است

    برای ارسال نظر ابتدا به سایت وارد شوید