# مباحث متفرقه برنامه نویسی > تالار های مرتبط با شبکه و امنیت > شبکه و Networking‌ > سوال: انواع IP و روش تشخیص آنها

## .:KeihanCPU:.

سلام دوستان
میشه بگین به طور کلی چند نوع IP وجود داره و روش تشخیص Valid IP با Unvalid IP چیه؟
همچنین چه راهی وجود داره که بشه به یه سیستم که به نت وصله و آیپی اینولید داره  و میزبان هم هست متصل شد؟
با سپاس...

----------


## bijibuji

سیستم با آدرس IP که Invalid باشه تنمی تونه روی اینترنت در دسترس باشه. برای دسترسی به یک سیستم حتما باید آدرس معتبر داشته باشه.
اگر این آدرس همیشه برای اون رزرو شده باشه Static و اگر متناوبا عوض بشه، Dynamic هستشکه با موضوع Valid - Invalid نباید اشتباه بگیرید.

----------


## .:KeihanCPU:.

ببین دوست عزیز من بخوام توسط Socket به یه سیستم وصل بشم فکر کنم باید آیپی معتبر داشته باشه،درسته؟
در ضمن ساختار ظاهرسون هم فکر کنم فرق داره 
192.168.56.1
78.192.86.1
درست میگم؟

----------


## reghbali06

رنج ipهای invalid
10.0.0.0 تا 10.255.255.255
172.16.0.0 تا 172.32.255.255
192.168.0.0 تا 192.168.255.255

----------


## reghbali06

> ببین دوست عزیز من بخوام توسط Socket به یه سیستم وصل بشم فکر کنم باید آیپی معتبر داشته باشه،درسته؟
> در ضمن ساختار ظاهرسون هم فکر کنم فرق داره 
> 192.168.56.1
> 78.192.86.1
> درست میگم؟


اگه بخوای تو اینترنت به طرف دیگر وصل شوی اون طرف باید IP ولید داشته باشه ولی اگه توی یک شبکه محلی باشی طرف مقابل ip غیر ولید هم میتونه داشته باشه.

----------


## .:KeihanCPU:.

> رنج ipهای invalid
> 10.0.0.0 تا 10.255.255.255
> 172.16.0.0 تا 172.32.255.255
> 192.168.0.0 تا 192.168.255.255


خوب حالا سوال اینجاست که چطور میشه با یه قطعه کد آیپی ولید و اینولید رو از هم تشخیص داد
لطفا رنج آیپی های ولید رو هم ذکر کنید

----------


## bijibuji

چرا با قطعه کد؟ با چشمهای نازت تشخیص بده.
هر آدرسی که تو این رینج های گفته شده نباشه معتبره و می تونی بری حالشو ببری...

----------


## mehdi.mousavi

> سلام دوستان  میشه بگین به طور کلی چند نوع IP وجود داره و روش تشخیص Valid IP با Unvalid IP چیه؟  همچنین چه راهی وجود داره که بشه به یه سیستم که به نت وصله و آیپی اینولید داره  و میزبان هم هست متصل شد؟  با سپاس...


سلام.
من نمیدونم این اسم Valid IP و Invalid IP از کجا اومده که امروزه همه از این واژه ها استفاده می کنن. اگر منظورتون آدرسهایی هستش که در شبکه محلی در دسترس هستند و از روی اینترنت نمیشه به اونها دسترسی پیدا کرد، بهشون میگن Private IP Addresses و نه Invalid. چون اونها هم کاملا Valid هستن، اما خوب، کاربرد های دیگه ای دارن.

IP به دو دسته کلی Private و Public تقسیم میشه. دسته Private خودش به دو بخش تقسیم میشه: آدرسهایی که صرفا بدون در دسترس بودن DHCP استفاده خواهند شد (169.254/16)  و آدرسهایی غیر از این که خودش به سه دسته زیر تقسیم میشه:

10.0.0.0 – 10.255.255.255
172.16.0.0 – 172.31.255.255
192.168.0.0 – 192.168.255.255


در این بازه ها، برخی از IP استفاده ویژه ای دارن و برای استفاده های خاصی، بصورت Reserved تعیین شدن. آدرسهای Broadcast و Loopback مثالهایی از این IP ها هستن. برای تشخیص IP هم کافیه از ipconfig/all در محیط Command Prompt استفاده کنید. به این ترتیب آدرسهای متفاوتی (در صورت وجود) که به کارت (یا کارتهای) شبکه شما تخصیص یافته رو خواهید دید. اگر جزء یکی از چهار دسته فوق بود، Private هست. اگر 127.0.0.1 بود، یعنی loopback، اگر چیزی غیر اینها بود، یعنی Public.

----------


## .:KeihanCPU:.

> چرا با قطعه کد؟ با چشمهای نازت تشخیص بده.


دوست عزیز میخوام تو برنامه ازش استفاده کنم خب
==========
ممنون مهدی جان
حالا میتونی یه الگوریتم بگی که بشه تو برنامم آیپی های عمومی و خصوصی رو از هم تشخیص بدم؟!

----------


## bijibuji

2 نوع آدرس IP وجود دارد : عمومی و خصوصی.
آدرس های Public از اینترنت قابل دسترس هستند در حالی که آدرس های Private از اینترنت در دسترس نیستند.. آدرس های خصوصی  را در یک شبکه  برای امنیت بیشتر استفاده کنید. به تمامی کامپیوترهای در محدوده شبکه محلی آدرس های Private ، و به یک کامپیوتر که  به عنوان دروازه بکار می رود یک آدرس معتبر تخصیص داده و آن را به آدرس های خصوصی با روشی به نام NAT  برای دسترسی به اینترنت را ترجمه کنید. محدوده آدرس های IP خصوصی : 

10.0.0.0 -- 10.255.255.255 

 172.16.0.0 -- 172.31.255.255 

 192.168.0.0 -- 192.168.255.255

----------


## mehdi.mousavi

> دوست عزیز میخوام تو برنامه ازش استفاده کنم خب
> ==========
> ممنون مهدی جان
> حالا میتونی یه الگوریتم بگی که بشه تو برنامم آیپی های عمومی و خصوصی رو از هم تشخیص بدم؟!


فرض می کنم توی Windows و با C++‎ می خواهید اینکارو انجام بدید. یک روش، استفاده از WinSock و تابع gethostbyname هستش (روشهای بسیار زیادی برای این منظور وجود داره). تو محیط .NET Framework بگونه ای دیگه عمل می کنید. بعدی اینکه IP رو توسط متود مورد نظر گرفتید، می تونید با مقادیر مورد نظرتون مقایسه کنید و ببینید آیا Private هست یا Public...

----------


## bijibuji

> دوست عزیز میخوام تو برنامه ازش استفاده کنم خب


اینجا دیگه من تسلیمم ....

----------

