برای دانستن مفاهیم شبکه همچنین سوکت نویسی حداقل دانشی باید در مورد ای پی داشته باشیم علاوه بر این اطلاعاتی هم از نحوه ارتباطات در شبکه نیز باید داشته باشیم
IP مخفف Internet Protocol است و کد یا آدرسی است که به دستگاههای متصل به اینترنت اختصاص داده میشود و هر سیستم متصل به اینترنت دارای یک IP است
سایتها معمولا در لاگ خود از ای پی افراد متصل به نت استفاده میکنن حتی اگر از فیلتر شکن هم استفاده بکنید نفری که در اون ساعت از اون فیلتر شکن استفاده کرده مشخص خواهد بود پس این بحث مهم هست ای پی یعنی نام و مشخصه افراد در فضای مجازی
من سعی میکنم زیاد وارد جزییات نشم چون بحث خیلی باز میشه کلا 2 نوع ای پی داریم
آیپی نسخه ۴ و آیپی نسخه ۶ که هر یک نشانی آیپی را به روش متفاوتی ارائه مینمایند
نشانی یا آیپی نسخهٔ چهارم یک عدد ۳۲ بیتی است که برای سادگی آن را به شکل چهار بخش عددی در مبنای ده مینویسند که با نقطه از هم جدا میشوند (مانند ۱۹۹٫۲۱۱٫۴۵٫۵). این روش نشانیدهی را دهدهی(این پست توضیح دادم) نقطهدار مینامند هر یک از چهار بخش را یک هشتایی (Octet) میگویند زیرا طول آن ۸ بیت (یا ۱ بایت) است و میتواند عددی از ۰ تا ۲۵۵ باشد. پس ۲ به توان ۳۲ آدرس مختلف داریم
اصولاً هر نشانی آیپی ۳۲ بیتی به دو بخش تقسیم میشود: یک پیشوند و یک پسوند. این دو سطح به منظور ایجاد یک روش مسیریابی کارآمد طراحی شدهاست. پیشوند آدرس، شبکهای را که رایانه به آن متصل است مشخص میکند (Network) در حالیکه پسوند یک رایانهٔ یکتا را روی شبکه مشخص میکند(Host). یعنی به هر شبکه در اینترنت یک مقدار یگانه که تحت عنوان شمارهٔ شبکه شناخته شدهاست، اختصاص دارد. شمارهٔ شبکه به عنوان یک پیشوند در نشانی هر رایانهای که به شبکه وصل است ظاهر میشود. بعلاوه به هر رایانهٔ روی یک شبکه، یک پسوند نشانی یکتا تخصیص یافتهاست. هر نشانی کامل، شامل یک پیشوند و یک پسوند است و طوری تخصیص داده میشوند که یکتا باشند، بنابراین ویژگی اول تضمین میگردد. اگر دو رایانه به دو شبکهٔ مختلف وصل شده باشند، نشانیهایشان پیشوندهای متفاوت خواهند داشت. اما اگر دو رایانه به یک شبکه وصل باشند، نشانیهایشان دارای پسوندهای متفاوت خواهد بود
کلاس های IP
سه کلاسِ پایهایِ مختلفِ نشانیدهیِ آیپی، برای شبکههای بزرگ، متوسط و کوچک وجود دارد. کلاس A برای شبکههای بزرگ، کلاس B برای شبکههای متوسط و کلاس C برای شبکههای کوچک است. علاوه بر این سه کلاس، کلاس D برای پخش چندگانه، ارسال اطلاعات به گروهی از رایانهها، و کلاس E برای کارهای جستجو وجود دارند. برای شرکت در پخش چندگانهٔ آیپی، مجموعهای از رایانههای میزبان باید بر سر استفاده از آدرس پخش چندگانه، بهطور مشترک توافق داشته باشند. پس از تشکیل گروه پخش چندگانه یک کپی از هر بستهٔ اطلاعاتی فرستاده شده به نشانی پخش چندگانه به هر رایانهٔ میزبان در مجموعه تحویل میگیرد؛ بنابراین نخستین ۴ بیت (از سمت چپ) آدرس IP کلاس آن را مشخص میکند. همچنین اگر نمایش نقطهدار را در نظر بگیریم از روی مقدار دهدهی بایت اول کلاس آن تشخیص داده میشود
اصولاً در سامانهٔ آیپیدهی به مشترکان، آیپیها به صورت تعدادی که توانی از عدد ۲ باشد (۲، ۴، ۸، ۱۶، ۳۲، ۶۴ و ۱۲۸) دستهبندی میشوند.که در هر دستهٔ آیپی اختصاص داده شده به مشترک آیپیهای اول و آخر بر اساس استاندارد معمولاً غیرقابل استفاده است و از باقیماندهٔ آیپیها میتوان در شبکهٔ محصورشدهاستفاده کرد. به عنوان مثال در یک کلاس هشتتایی، حداکثر شش نشانی آیپی قابل استفاده است
برای جلوگیری از هدردهی آیپی در هر کلاس، یک محدودهٔ آیپی برای شبکههای خصوصی (مانند شبکهٔ داخلی ادارات و شرکتها) در نظر گرفته شدهاست عین همین شکل
برای اتصال یک شبکهٔ خصوصی به اینترنت از پروتکل NAT استفاده میشود به این ترتیب که نشانی خصوصی به یک یا چند نشانی منحصربهفرد عمومی ترجمه میشود
ای پ ی نسخ 6
گسترش روزافزون اینترنت و نیاز به آدرسهای بسیار بیشتر تیم Internet Engineering Task Force را برآن داشت تا به فکر تکنولوژیهای جدیدی باشند تا امکان تعریف آدرسهای آی پی بیشتری فرآهم گردد. بهترین راه ساخت مجدد نشانی پروتکل اینترنت بود. در سال ۱۹۹۵ میلادی نسخه جدید نشانی پروتکل اینترنت با نام آی پی نسخه ۶ معرفی گردید. اندازه آدرس از ۳۲ بیت به ۱۲۸ بیت افزایش یافت و امکان آدرس دهی تا ۲به توان ۱۲۸ آدرس افزایش یافت. این کار تنها تعداد آدرسهای اینترنتی را گسترش نداد، بلکه باعث خواهد شد جدول مسیریابهای اینترنتی (روترها) کوچکتر شود. کلیه سیستمعاملهای جدید سرور و خانگی از جمله ویندوز ویستا بهطور کامل پشیبانی میشود ولی متأسفانه هنوز توسط بسیاری از مسیریابهای شبکههای خانگی و تجهیزات شبکه عادی پشتیبانی نشدهاست.
برای پیدا کردن ای پی خود کافیه در محیط خط فرمان ویندوز این رو تایپ کنید ipconfig
برای نمایش ای پی در سی شارپ نیز از کلاس ipaddres استفاده میکنیم
private string GetIP()
{
string strHostName = "";
strHostName = System.Net.Dns.GetHostName();
IPHostEntry ipEntry = System.Net.Dns.GetHostEntry(strHostName);
IPAddress[] addr = ipEntry.AddressList;
return addr[addr.Length - 1].ToString();
}
برای نمایش ای پی عمومی نیز میتونید از این کد استفاده کنید
private string GetIPAddress()
{
string ip = new WebClient().DownloadString("http://icanhazip.com");
ip = ip.Replace("\n", "");
return ip;
}