آئی پی معلومات کی تلاش
آئی پی ایڈریس کے تفصیلی معلومات حاصل کریں، بشمول جغرافیائی مقام، آئی ایس پی، اے ایس این اور مزید۔
رازداری اور سیکیورٹی
اس ٹول کا استعمال کرتے وقت IP معلومات کی تحقیقات کریں، درج ذیل نوٹ کریں:
- ℹ️ تحقیقات کی درخواستیں تھرڈ پارٹی API کو بھیجی جاتی ہیں؛ ہم آپ کی تحقیقات کی تاریخ کو لاگ نہیں کرتے
- ℹ️ IP جیو لوکیشن ڈیٹا عام طور پر صرف شہر کی سطح تک درست ہوتا ہے اور قطعی ایڈریس کا پتہ نہیں لگا سکتا
- ℹ️ زیادہ تر ہوم براڈ بینڈ کنکشنز ڈائنامک IP استعمال کرتے ہیں، لہذا آپ کا IP ایڈریس وقتاً فوقتاً تبدیل ہو سکتا ہے
- ℹ️ اگر آپ VPN یا پروکسی استعمال کر رہے ہیں تو نتائج پروکسی سرور کی معلومات دکھائیں گے
استعمال کے معاملات
سیکیورٹی مانیٹرنگ
ممکنہ سیکیورٹی خطرات کی شناخت کے لیے مشکوک IP ذرائع کے رسائی لاگ کا تجزیہ کریں۔
نیٹ ورک ڈیبگنگ
رابطے کے مسائل کا ازالہ کریں اور اپنے سرور یا CDN نوڈس کے جغرافیائی مقام کی تصدیق کریں۔
جیو لوکیشن
صارف کے IP ایڈریس کی بنیاد پر مقامی مواد، زبان یا سروسز فراہم کریں (مثال کے طور پر CDN ڈسٹری بیوشن)۔
اکثر پوچھے جانے والے سوالات
IP جیو لوکیشن کتنی درست ہوتی ہے؟
IP جیو لوکیشن عام طور پر شہر کی سطح پر درست ہوتا ہے، جس میں سینکڑوں کلومیٹر تک کے ممکنہ غلطیاں ہو سکتی ہیں۔ یہ قطعی گلی کے پتے یا عمارت کے نمبر کو درست طریقے سے ظاہر نہیں کر سکتا۔
میرا IP ایڈریس کیوں بدلتا ہے؟
زیادہ تر گھریلو براڈ بینڈ کنکشن ڈائنامک IP الاویشن (DHCP) استعمال کرتے ہیں، اس لیے آپ کا ISP وقتاً فوقتاً نیا IP تفویض کرتا ہے۔ کاروبار یا سرورز عام طور پر سٹیٹک IP استعمال کرتے ہیں۔
میں اپنا حقیقی IP ایڈریس کیسے چھپا سکتا ہوں؟
آپ اپنا حقیقی IP چھپانے کے لیے VPN، پراکسی سرور یا Tor نیٹ ورک استعمال کر سکتے ہیں۔ تاہم، نوٹ کریں کہ یہ سروسز آپ کے کنکشن کو سست کر سکتی ہیں یا کچھ ویب سائٹس تک رسائی کو روک سکتی ہیں۔
میرے پاس دو IP ایڈریس کیوں ہیں؟
آپ کے پاس غالباً IPv4 اور IPv6 دونوں ایڈریس ہیں۔ جدید نیٹ ورکس IPv4 سے IPv6 کی طرف منتقل ہو رہے ہیں، اور بہت سے آلات بیک وقت دونوں پروٹوکول کو سپورٹ کرتے ہیں۔
IPv4 بمقابلہ IPv6: ہمیں IPv6 کی ضرورت کیوں ہے؟
IPv4 (1981)
فارمیٹ: نقطوں سے الگ کردہ دس نما عددز کے چار گروہ (مثال کے طور پر، 192.168.1.1)
کل تعداد: تقریباً 4.3 بلین ایڈریسز (2³² = 4,294,967,296)
مسئلہ: ایڈریسز تقریباً ختم ہو چکے ہیں؛ 2011 تک مکمل طور پر مختص کر دیے گئے
لمبائی: 32 بٹ
IPv6 (1998)
فارمیٹ: ہیکساڈیسیمل عددز کے 8 گروہ (مثال کے طور پر، 2001:0db8::1)
کل تعداد: تقریباً 340 اندکیلین ایڈریسز (2¹²⁸)
فائدہ: تقریباً لامحدود ایڈریس اسپیس - زمین پر موجود ریت کے ہر دانے کو ایک IP مختص کرنے کے لیے کافی ہے
لمبائی: 128 بٹ
IPv4 کافی نہیں کیوں؟
- • عالمی آبادی 8 بلین، فی شخص کم از کم 2-3 ڈیوائسز (فونز، کمپیوٹرز، ٹیبلٹس)
- • IoT ڈیوائسز (سمارٹ گھر، کارز، وئیر ایبلز) کی دھماکہ خیز ترقی
- • انٹرپرائزز اور ڈیٹا سینٹرز کو بہت زیادہ تعداد میں IP ایڈریسز درکار ہوتے ہیں
- • ابتدائی مختصنگ ناکارہ تھی (مثال کے طور پر MIT کو 16 ملین IP مختص کیے گئے)
خصوصی IP ایڈریس رینجز
لوپ بیک ایڈریس
127.0.0.0/8 (127.0.0.1 – 127.255.255.255)
مقامی جانچ کے لیے استعمال ہوتا ہے؛ ڈیٹا کبھی بھی مشین سے باہر نہیں جاتا۔ عام طور پر، 127.0.0.1 لوکل ہوسٹ کی نمائندگی کرتا ہے
استعمال: مقامی سروسز کی جانچ، ڈیویلپمنٹ اور ڈیبگنگ
نجی ایڈریسز
- 10.0.0.0/8 (10.0.0.0 – 10.255.255.255) – کلاس A
- 172.16.0.0/12 (172.16.0.0 – 172.31.255.255) – کلاس B
- 192.168.0.0/16 (192.168.0.0 – 192.168.255.255) – کلاس C
مقامی نیٹ ورکس کے اندر اندرونی طور پر استعمال ہوتے ہیں؛ NAT ترجمے کے بغیر براہ راست انٹرنیٹ تک رسائی نہیں کر سکتے
استعمال: گھریلو نیٹ ورکس، انٹرپرائز انٹرانیٹ
APIPA ایڈریس
169.254.0.0/16
ایک عارضی ایڈریس جو سسٹم کے ذریعے خود بخود تفویض کیا جاتا ہے جب DHCP سرور دستیاب نہ ہو
استعمال: خودکار کنفیگریشن (نیٹ ورک کنفیگریشن کی ناکامی کی نشاندہی کرتا ہے)
ملٹی کاسٹ ایڈریس
224.0.0.0/4 (224.0.0.0 – 239.255.255.255)
ایک سے زیادہ مواصلات کے لیے استعمال ہوتا ہے، جیسے لائیو ویڈیو سٹریمنگ اور IPTV
محفوظ کردہ ایڈریس
- 0.0.0.0/8 – "اس نیٹ ورک" کی نمائندگی کرتا ہے
- 255.255.255.255 – براڈکاسٹ ایڈریس
- 192.0.2.0/24 – دستاویزات کی مثالوں کے لیے محفوظ
- 198.18.0.0/15 – بینچ مارک ٹیسٹنگ کے لیے محفوظ
اعلی درجے کے پبلک DNS سرورز
Google DNS
8.8.8.8 / 8.8.4.4
2001:4860:4860::8888 / 2001:4860:4860::8844
عالمی سطح پر سب سے تیز اور قابل اعتماد، DNSSEC کی حمایت کرتا ہے
Cloudflare DNS
1.1.1.1 / 1.0.0.1
2606:4700:4700::1111 / 2606:4700:4700::1001
رازداری پر مرکوز، انتہائی تیز اور کوئی لاگنگ نہیں
Quad9 DNS
9.9.9.9 / 149.112.112.112
سیکیورٹی تحفظ، بدنیتی پر مبنی ویب سائٹس کو روکتا ہے
OpenDNS
208.67.222.222 / 208.67.220.220
والدین کے کنٹرولز، مواد فلٹرنگ
ایشیا ریجن DNS
- Alibaba Cloud DNS (چین): 223.5.5.5 / 223.6.6.6
- DNSPod (چین): 119.29.29.29
- 114 DNS (چین): 114.114.114.114
دلچسپ IP حقائق
💰 سب سے مہنگے IP ایڈریس بلاکس
1.0.0.0/8 بلاک کو ایک بار APNIC نے تحقیقی مقاصد کے لیے کروڑوں ڈالر میں خریدا تھا۔ مخصوص 'پریمیم' IPs (جیسے 8.8.8.8 اور 1.1.1.1) انتہائی قیمتی ہیں—Cloudflare نے 1.1.1.1 کو ٹیلی کام فراہم کنندہ سے حاصل کرنے کے لیے کافی رقم خرچ کی تھی۔
📍 ایک جیسا IP مختلف مقامات کیوں ظاہر کرتا ہے؟
- • مختلف IP جیو لوکیشن ڈیٹا بیس (ہر API مختلف ڈیٹا ذرائع استعمال کرتا ہے)
- • متحرک IP ایڈریس تبدیل ہوتے ہیں (ISP کے ذریعے دوبارہ تفویض کیے جاتے ہیں)
- • VPN/پراکسی سرور (پراکسی سرور کا مقام ظاہر کرتے ہیں)
- • CDN نوڈس (قریب ترین CDN سرور کا مقام ظاہر کرتے ہیں)
- • موبائل نیٹ ورکس (سیل ٹاور کے مقامات درست نہیں ہو سکتے)
📊 IPv6 اپنانے کی شرح
2024 تک، عالمی سطح پر IPv6 اپنانے کی شرح تقریباً 40 فیصد ہے، جس کی قیادت ہندوستان، ریاستہائے متحدہ اور جرمنی کر رہے ہیں۔ چین کی شرح تقریباً 30 فیصد ہے۔ بیلجیم کی دنیا میں سب سے زیادہ IPv6 اپنانے کی شرح ہے، جو 60 فیصد سے زیادہ ہے۔
🎂 پہلا IP ایڈریس
1 جنوری 1983 کو، انٹرنیٹ نے باضابطہ طور پر TCP/IP پروٹوکول اپنایا، جس سے پہلے IP ایڈریس کی پیدائش ہوئی۔ BBN ٹیکنالوجیز کے لیونارڈ کلینروک کو IP ایڈریس استعمال کرنے والا پہلا شخص سمجھا جاتا ہے۔
🗑️ غیر موثر IP تقسیم
ابتدائی انٹرنیٹ IP تقسیم انتہائی فراخ دلانہ تھی: MIT (ایک واحد یونیورسٹی) کو 16 ملین IP تفویض کیے گئے تھے (پورا 18.0.0.0/8 بلاک)، اور ایپل کو 16 ملین IP تفویض کیے گئے تھے (17.0.0.0/8)۔ دوسری طرف، پورا مین لینڈ چین کو صرف تقریباً 330 ملین IP موصول ہوئے تھے—جو تقریباً ایک ارب انٹرنیٹ استعمال کنندوں کی خدمت کر رہے تھے۔ ہر شخص پر دو آلات فرض کرتے ہوئے، کم از کم 2 ارب IP درکار ہوں گے۔ اس عدم توازن نے چین کو IP شیئر کرنے کے لیے NAT ٹیکنالوجی پر بہت زیادہ انحصار کرنے پر مجبور کیا۔
🚫 IP بلیک لسٹ
عالمی سطح پر، متعدد IP بلیک لسٹ ڈیٹا بیس (جیسے Spamhaus) موجود ہیں جو اسپام، میلویئر، DDoS حملوں اور دیگر بدنیتی پر مبنی سرگرمیوں سے وابستہ IPs کو نشان زد کرنے کے لیے استعمال ہوتے ہیں۔ ایک بار جب کوئی IP بلیک لسٹ ہو جاتا ہے، تو اس کے نتیجے میں ای میلز مسترد ہو سکتی ہیں یا ویب سائٹس بلاک ہو سکتی ہیں۔
🤯 IP جیو لوکیشن کے عجیب و غریب معاملے
ریاستہائے متحدہہ کے کانزاس کا ایک عام گھرانہ میکس مائنڈ کے آئی پی ڈیٹا بیس کے ذریعے ڈیفالٹ کوآرڈینیٹ (38°شمالی 97°مغربی — امریکہ کا جغرافیائی مرکز) تفویض کیا گیا۔ اس کے نتیجے میں، لاکھوں ایسے آئی پی پتے جو درست طریقے سے مقام معلوم نہیں کیا جا سکا، اس گھرانے میں نقشہ بند کردیے گئے۔ یہ گھرانہ غیر متوقع طور پر 'امریکہ کا ہیکر ہب' کے نام سے جانا جانے لگا، جسے بے شمار ہراساں کرنے والی کالز اور ایف بی آئی، پولیس، قرض جمع کرنے والوں اور اسکیم کے متاثرین کے دورے موصول ہوئے — کچھ تو رات کو گھر میں گھس بھی گئے۔ 2016 میں، اس گھرانے نے میکس مائنڈ پر مقدمہ کیا اور آخر کار معاوضہ جیتا۔
💸 IPv4 پتے خریدے اور بیچے جا سکتے ہیں
IPv4 پتوں کی کمی کی وجہ سے، آئی پی پتے تجارت کے قابل اشیاء بن گئے ہیں۔ کالے بازار میں، قیمت فی پتہ $40 تک پہنچ سکتی ہے۔ 2011 میں، مائیکروسافٹ نے دیوالیہ ہونے والی نورٹیل سے 666,000 آئی پی پتے $7.5 ملین میں خریدے — اوسطاً فی آئی پی تقریباً $11.25۔ 2014 میں، ایمیزون اور مائیکروسافٹ جیسے ٹیکنالوجی دیووں نے IPv4 پتوں کو زبردستی جمع کرنا شروع کیا، جس کی قیمت کو ریکارڈ سطح پر پہنچا دیا۔
🤦 IPv4 ڈیزائنرز کی غلطی کا اندازہ
1981 میں، IPv4 کے ڈیزائنرز کا خیال تھا کہ '4.3 بلین پتے ہمیشہ کے لئے کافی ہوں گے۔' انہوں نے کبھی انٹرنیٹ کے دھماکہ خیز نمو کا اندازہ نہیں لگایا: آج کی عالمی آبادی 8 بلین افراد، ہر ایک کے پاس کم از کم 2-3 ڈیوائسز ہیں، نیز IoT ڈیوائسز کی بڑھوتری۔ اگر IPv4 کو 64 بٹ یا 128 بٹ ایڈریسنگ کے ساتھ ڈیزائن کیا گیا ہوتا، تو آج ہمیں ایڈریس کی کمی کے بحران کا سامنا نہ کرنا پڑتا۔
🏠 127.0.0.1 کا راز
127.0.0.1 (localhost) صرف ایک پتہ نہیں پورا 127.0.0.0/8 رینج (تقریباً 16 ملین پتے) لوپ بیک کے لئے مخصوص ہے۔ آپ اس رینج کے کسی بھی پتے کو پنگ کر سکتے ہیں — جیسے 127.0.0.2 یا 127.1.2.3 — اور یہ سب آپ کی اپنی مشین کی طرف اشارہ کرتے ہیں۔
⏰ IPv4 ایڈریس کی ٹم لائن آف ایگزاسٹن
3 فروری 2011 کو، IANA نے اپنا آخری IPv4 ایڈریس بلاک مختص کیا۔ 15 اپریل 2011 کو، APNIC (ایشیا بحرالکاہل) ختم ہو گیا۔ ستمبر 2012 میں، RIPE NCC (یورپ) نے اپنا پول ختم کر دیا۔ ستمبر 2015 میں، ARIN (شمالی امریکہ) نے اپنے بقیہ پتے ختم کر دیے۔
📏 سب سے لمبا آئی پی پتہ
IPv6 ایڈریس زیادہ سے زیادہ 39 حروف کا ہو سکتا ہے (4 ہیکساڈیسیمل ہندسوں کے 8 گروپ، plus 7 کولنز)۔ تاہم، کمپریشن کے قوانین کے ذریعے اسے نمایاں طور پر مختصر کیا جا سکتا ہے — مثال کے طور پر، ::1 IPv6 لوپ بیک ایڈریس کی نمائندگی کرتا ہے۔
🚀 IP ایڈریس کا انٹرنیٹ کی رفتار سے کوئی تعلق نہیں
بہت سے لوگ غلطی سے یہ سمجھتے ہیں کہ اپنا IP ایڈریس تبدیل کرنے سے انٹرنیٹ کی رفتار بہتر ہو سکتی ہے۔ درحقیقت، IP ایڈریس صرف نیٹ ورک پر ایک 'سٹریٹ ایڈریس' ہوتا ہے۔ رفتار بینڈوتھ، روٹنگ، سرور کی کارکردگی اور دیگر عوامل پر منحصر ہوتی ہے — نہ کہ خود IP ایڈریس پر۔
IPv6 کی خصوصیات اور فائدے/نقصانات
فائدے
- ✓ بہت بڑا ایڈریس اسپیس: 2¹²⁸ ایڈریس — عملی طور پر لامحدود
- ✓ آسان روٹنگ: درجہ بندی والا ایڈریسنگ روٹنگ ٹیبل کا سائز کم کرتا ہے
- ✓ خودکار کنفیگریشن: SLAAC کی حمایت کرتا ہے بغیر DHCP کی ضرورت کے
- ✓ بہتر سیکیورٹی: بلٹ ان IPsec سپورٹ
- ✓ بہتر QoS: فلو لیبل فیلڈ حقیقی وقت کے ایپلی کیشنز کو بہتر بناتی ہے
- ✓ NAT کی کوئی ضرورت نہیں: ہر ڈیوائس کا پبلک IP ایڈریس ہوتا ہے
- ✓ بہتر موبلٹی: موبائل ڈیوائسز کے لیے بہتر سپورٹ
نقصانات
- ⚠ مطابقت کے مسائل: ڈیوائس اور نیٹ ورک کی سپورٹ درکار ہوتی ہے
- ⚠ سیکھنے کا عمل: ایڈریس کی شکل پیچیدہ ہوتی ہے اور یاد رکھنا مشکل
- ⚠ منتقلی کی لاگت: ہارڈ ویئر اور سافٹ ویئر کو اپ گریڈ کرنے کی ضرورت ہوتی ہے
- ⚠ ڈوئل-اسٹیک آپریشن: منتقلی کے دوران IPv4 اور IPv6 دونوں کو سپورٹ کرنا ضروری ہے
متعلقہ IP معلومات کی خدمات
یہ ٹول خدمات فراہم کرنے کے لیے درج ذیل API استعمال کرتا ہے، اور ہم ان دیگر بہترین IP تلاش کرنے والی خدمات کی بھی سفارش کرتے ہیں:
IP-API.com
اس ٹول کے ذریعے استعمال ہوتا ہے ⭐اس ٹول کا استعمال شدہ بنیادی API۔ مکمل طور پر مفت (غیر تجارتی استعمال)، بیچ استفسارات کی حمایت کرتا ہے، اور JSON/XML/CSV فارمیٹس میں ڈیٹا فراہم کرتا ہے۔ حد: فی منٹ 45 درخواستیں۔
IPapi.co
اس ٹول کے ذریعے استعمال ہوتا ہے ⭐اس ٹول کے لیے بیک اپ API۔ کرنسی، زبان اور ربط کی قسم جیسے اضافی تفصیلات فراہم کرتا ہے۔ مفت لیول: فی مہینہ 30,000 درخواستیں۔
IPInfo.io
درست ڈیٹا، ڈویلپر کے موافق APIتفصیلی IP معلومات فراہم کرتا ہے، بشمول ASN ڈیٹا، جگہ کی نشاندہی، اور کمپنی کی تفصیلات۔ مفت پلان پیش کرتا ہے (Free Plan)۔
IPGeolocation.io
خصوصیات سے بھرپورIP جگہ کی نشاندہی، ٹائم زون، کرنسی، موسم اور مزید فراہم کرتا ہے۔ مفت لیول: فی مہینہ 30,000 درخواستیں۔
MaxMind GeoIP2
سب سے زیادہ درست، انٹرپرائز درجے کاایک انڈسٹری کے معیار کے مطابق IP جگہ کی نشاندہی والا ڈیٹا بیس جس کی درستگی زیادہ ہوتی ہے۔ آف لائن ڈیٹا بیس اور آن لائن API دونوں پیش کرتا ہے۔
IPStack
سیکیورٹی کا پتہ لگاناIPv4 اور IPv6 کی حمایت کرتا ہے، پراکسی، VPN اور Tor کا پتہ لگانے کے لیے سیکیورٹی ماڈیولز کے ساتھ۔ مفت لیول: فی مہینہ 100 درخواستیں۔
IPData.co
حملے کی ذہین معلوماتھم حملے کی ذہین معلومات، ASN کی تفصیلات اور کمپنی کا ڈیٹا فراہم کرتا ہے۔ مفت پلان میں روزانہ 1,500 درخواستیں کی جا سکتی ہیں۔
Abstract API
آسان اور استعمال میں آسانایک آسان اور استعمال میں آسان IP جیو لوکیشن API۔ مفت پلان میں مہینے میں 1,000 درخواستیں کی جا سکتی ہیں، جس کی حد 1 درخواست فی سیکنڈ ہے۔
IPRegistry
سائن اپ پر 100,000 مفت درخواستیں حاصل کریںIP جیو لوکیشن، کمپنی کی معلومات، حملے کی پتہ لگانی اور پراکسی حل فراہم کرتا ہے۔ رجسٹریشن پر 100,000 مفت درخواستیں حاصل کرنے کے لیے سائن اپ کریں۔
DB-IP
اوپن سورس ڈیٹا بیسمفت ڈاؤن لوڈ کے قابل IP جیو لوکیشن ڈیٹا بیس فراہم کرتا ہے، ساتھ ہی آن لائن استفسار کی سروس بھی۔
IPify
اپنا پبلک IP حاصل کریںآپ کا پبلک IP ایڈریس حاصل کرنے میں مہارت رکھتا ہے - آسان، تیز اور مکمل طور پر مفت۔
پروگرامی طریقے سے IP ایڈریس کیسے حاصل کیا جائے؟
ذیل میں مختلف پروگرامنگ زبانوں میں وزیٹر کے IP ایڈریس حاصل کرنے کے لیے مثالی کوڈ دیے گئے ہیں:
Java (Spring Boot)
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
@RestController
public class IpController {
@GetMapping('/ip')
public String getClientIp(HttpServletRequest request) {
String ip = request.getHeader("CF-Connecting-IP");
if (ip == null || ip.isEmpty()) {
ip = request.getHeader("X-Forwarded-For");
if (ip != null) {
ip = ip.split(",")[0];
}
}
if (ip == null || ip.isEmpty()) {
ip = request.getHeader("X-Real-IP");
}
if (ip == null || ip.isEmpty()) {
ip = request.getRemoteAddr();
}
return ip;
}
}
PHP
function getClientIp() {
$ipKeys = [
'HTTP_CF_CONNECTING_IP',
'HTTP_X_FORWARDED_FOR',
'HTTP_X_REAL_IP',
'REMOTE_ADDR'
];
foreach ($ipKeys as $key) {
if (!empty($_SERVER[$key])) {
$ips = explode(',', $_SERVER[$key]);
return trim($ips[0]);
}
}
return $_SERVER['REMOTE_ADDR'] ?? 'Unknown';
}
$ip = getClientIp();
echo "Your IP: " . $ip;
JavaScript (Node.js)
const express = require('express');
const app = express();
app.get('/ip', (req, res) => {
const ip = req.headers['cf-connecting-ip'] ||
req.headers['x-forwarded-for']?.split(',')[0] ||
req.headers['x-real-ip'] ||
req.socket.remoteAddress;
res.json({ ip: ip });
});
app.listen(3000);
Python (Flask)
from flask import Flask, request
app = Flask(__name__)
@app.route('/ip')
def get_ip():
ip = request.headers.get('CF-Connecting-IP') or \
request.headers.get('X-Forwarded-For', '').split(',')[0] or \
request.headers.get('X-Real-IP') or \
request.remote_addr
return {'ip': ip}
if __name__ == '__main__':
app.run()
Rust
use actix_web::{web, App, HttpRequest, HttpServer, Responder};
fn get_client_ip(req: &HttpRequest) -> String {
if let Some(ip) = req.headers().get("CF-Connecting-IP") {
return ip.to_str().unwrap_or("").to_string();
}
if let Some(forwarded) = req.headers().get("X-Forwarded-For") {
if let Ok(forwarded_str) = forwarded.to_str() {
if let Some(first_ip) = forwarded_str.split(',').next() {
return first_ip.trim().to_string();
}
}
}
if let Some(ip) = req.headers().get("X-Real-IP") {
return ip.to_str().unwrap_or("").to_string();
}
req.peer_addr()
.map(|addr| addr.ip().to_string())
.unwrap_or_else(|| "Unknown".to_string())
}
async fn ip_handler(req: HttpRequest) -> impl Responder {
let ip = get_client_ip(&req);
format!("Your IP: {}", ip)
}
#[actix_web::main]
async fn main() -> std::io::Result<()> {
HttpServer::new(|| {
App::new().route("/ip", web::get().to(ip_handler))
})
.bind("127.0.0.1:8080")?
.run()
.await
}
Go
package main
import (
"net/http"
"strings"
)
func getClientIP(r *http.Request) string {
if ip := r.Header.Get("CF-Connecting-IP"); ip != "" {
return ip
}
if forwarded := r.Header.Get("X-Forwarded-For"); forwarded != "" {
ips := strings.Split(forwarded, ",")
return strings.TrimSpace(ips[0])
}
if ip := r.Header.Get("X-Real-IP"); ip != "" {
return ip
}
return r.RemoteAddr
}
func handler(w http.ResponseWriter, r *http.Request) {
ip := getClientIP(r)
w.Write([]byte("Your IP: " + ip))
}
func main() {
http.HandleFunc("/ip", handler)
http.ListenAndServe(":8080", nil)
}
注意事项:
- • نوٹ: اگر آپ کی ویب سائٹ CDN (مثال کے طور پر Cloudflare) یا ریورس پراکسی (مثال کے طور پر Nginx) استعمال کرتی ہے، تو آپ کو مخصوص HTTP ہیڈرز سے حقیقی IP نکالنا ضروری ہے۔
- • ترجیحی ترتیب: CF-Connecting-IP > X-Forwarded-For > X-Real-IP > RemoteAddr
- • X-Forwarded-For ایک سے زیادہ IPs (کوما سے الگ کیے گئے) پر مشتمل ہو سکتا ہے؛ پہلا IP کلائنٹ کا حقیقی IP ہوتا ہے۔
- • براؤزر سائیڈ پر JavaScript براہ راست IP ایڈریس حاصل نہیں کر سکتا - اس کے لیے تھرڈ پارٹی API کو کال کرنا ضروری ہے۔