امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
GeoIP چیست؟
نویسنده پیام
babyy آفلاین
بازنشسته
*****

ارسال‌ها: 3,095
موضوع‌ها: 141
تاریخ عضویت: مرداد ۱۳۸۷

تشکرها : 35081
( 26090 تشکر در 9068 ارسال )
ارسال: #1
GeoIP چیست؟
سلام

همونطور که میدونید آدرسهای IP بر اساس یک نظم بندی خاصی طبقه بندی شدند
هر کشوری که درخواست ip میکنه یک رنج خاصی از آدرس رو به اون کشور اختصاص میدن
تمام اینکار ها برای جلوگیری از بی نظمی ضروریه

در این بین بعضی از سایتها مثل این با دریافت ip از شما بهتون میگن این ip برای کدوم کشور هست و ....

در همین بین بعضی از سایتها یک دیتابیس جامع و کاملی از آدرسهایی که به هر کشور اختصاص دادن رو به صورت رایگان در اختیار عموم قرار دادن

یکی از این سایتها این سایت هستش که آخرین آپدیتشو پیوست کردم

یک خط از این دیتابیس شبیه زیر هستش :
کد php:
"2.144.0.0","2.147.255.255","42991616","43253759","IR","Iran, Islamic Republic of" 

همونطور که معلومه و فیلد اول (2.144.0.0) آدرس شروع ip و فیلد دوم (2.147.255.255) آدرس پایان هستش! یعنی تمام ip هایی که در رنج 2.144.0.0 تا 2.147.255.255 هستند برای کشوره خودمونه.

دو تا فیلد آخر هم که معلومه؛ آخریش نام کامل کشور و یکی مونده به آخری دو حرف اختصاری نام کشور

اما دوفیلد وسطی چیست؟ Biggrin

فیلد سوم:
کد:
42991616
و چهارم :
کد:
43253759
یک سری عدد هستند (نمایش عددی ip) که بر مبنای خاصی وجود اومدن؛ در واقع با این دو فیلد کار جست و جو خیلی خیلی آسون میشه!

نحوی محاسبه این اعداد به این شکله:

فرض کنید آدرس ip ما به شکل زیر هست :
کد:
AA.BB.CC.DD
برای تبدیل به فرم عددد اول باید
کد:
AA * 16777216
BB * 65536
CC * 256
DD
و نهایتان تمام این اعداد باهم جمع میشن! و فرم عددی ip رو نمایش میدن؛
حالا برنامه نویس کافیه فقط ip مورد نظر رو تبدیل کنه به فرم عددی و ببینه بین دو عدد هست یا نه! و از سر و کله زدن با اون آدرسهای ip خودداری کنه!!

توجه:
کد:
2 ^ 24 = 16777216
2 ^ 16 = 65536
2 ^ 8 = 256
2 ^ 0 = 1

تمام اینکارها رو توسط دو خط برنامه بش انجام دادم! و قابل اجرا در لینوکس هست؛ که سورسشو میتونید ببینید:

کد php:
i=`echo $1|awk -F. '{print $1*(2**24)+$2*(2**16)+$3*(2**8)+$4*(2**0)}'`

cat GeoIPCountryWhois.csv  |cut -d, -f3-6|sed 's/"//g' awk -F, -v i=$i '($1<=i && $2 >= i ){print $4}' 

خروجیش:
با ip سایت ‌ایران‌لد خودمون:
کد php:
./search 174.142.150.198                                                                               
Canada 

نتیجه میگیریم سرور توی کاناداست Biggrin

توجه:
یعد از اینکه هر کشور ip گرفت؛ اونو به شهرهاش اختصاص میده؛ این سایتی که اون بالا گفتم یک دیتابیس دیگه داره که بنا به هر شهر خاص ip هارو جدا کرده!


فایل‌(های) پیوست شده
.zip   GeoIPCountryCSV.zip (اندازه: 1.43 MB / تعداد دفعات دریافت: 153)
۰۷-بهمن-۱۳۹۱, ۱۲:۵۱:۳۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, رسول, ajlajlajl, sharin, omid_phoenix, Di Di, hamed_Arfaee, banozk


پیام‌های داخل این موضوع
GeoIP چیست؟ - توسط babyy - ۰۷-بهمن-۱۳۹۱, ۱۲:۵۱:۳۸
RE: GeoIP چیست؟ - توسط ajlajlajl - ۰۷-بهمن-۱۳۹۱, ۱۴:۳۹:۱۴,
RE: GeoIP چیست؟ - توسط babyy - ۰۷-بهمن-۱۳۹۱, ۱۵:۰۳:۲۸,
RE: GeoIP چیست؟ - توسط ajlajlajl - ۰۷-بهمن-۱۳۹۱, ۱۶:۲۹:۱۷,
RE: GeoIP چیست؟ - توسط babyy - ۰۷-بهمن-۱۳۹۱, ۱۶:۴۶:۱۹,
RE: GeoIP چیست؟ - توسط ajlajlajl - ۰۷-بهمن-۱۳۹۱, ۲۳:۰۸:۲۸,
RE: GeoIP چیست؟ - توسط zahrabi - ۰۳-مرداد-۱۳۹۵, ۰۹:۵۲:۱۱,
RE: GeoIP چیست؟ - توسط babyy - ۰۳-مرداد-۱۳۹۵, ۱۰:۳۸:۲۰,

موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  سه رنگ اصلی چیست؟ Pardazesh-Gar 5 84,366 ۲۲-دى-۱۳۹۹, ۱۷:۵۹:۱۷
آخرین ارسال: NO DONGLE
  سیستم های اعلام حریق چیست؟ golzar84 0 2,148 ۲۳-بهمن-۱۳۹۴, ۱۹:۰۴:۱۹
آخرین ارسال: golzar84
  NAT چیست و چگونه پیاده سازی میشود ؟! Neltherion 0 4,499 ۰۳-شهریور-۱۳۸۸, ۱۵:۰۶:۱۵
آخرین ارسال: Neltherion
  يونيكد چیست lord_viper 0 2,132 ۲۵-مهر-۱۳۸۷, ۰۹:۰۵:۵۸
آخرین ارسال: lord_viper

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع:

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS