IP معلومات کی تلاش

IP ایڈریس کی جغرافیائی مقام، ISP، ASN اور دیگر تفصیلات کی تلاش کریں

تلاش کی ترتیبات

تلاش کا نتیجہ

براہ کرم IP ایڈریس درج کریں یا 'میرا IP دریافت کریں' پر کلک کریں

پرائیویسی اور سیکیورٹی

IP معلومات کی تلاش کے لیے اس ٹول کا استعمال کرتے وقت، درج ذیل باتوں کو مدِ نظر رکھیں:

  • ℹ️ تلاش کا درخواست تیسری پارٹی API کو بھیجا جائے گا، ہم آپ کی تلاش کی تاریخ محفوظ نہیں کرتے
  • ℹ️ IP جیوگرافیکل معلومات عام طور پر شہر کے سطح تک درست ہوتی ہیں، مخصوص ایڈریس تک نہیں
  • ℹ️ زیادہ تر گھریلو براڈ بینڈ پر ڈائنامک IP استعمال ہوتا ہے، آپ کا IP ایڈریس مسلسل تبدیل ہوتا رہے گا
  • ℹ️ اگر آپ VPN یا پروکسی استعمال کر رہے ہیں، تو تلاش کے نتائج پروکسی سرور کی معلومات ظاہر کریں گے

استعمال کے مناظر

سیکیورٹی چیک

مشکوک IP ایڈریسز کی تلاش کریں اور ممکنہ سیکیورٹی خطرات کی شناخت کریں۔

نیٹ ورک ڈیبگنگ

نیٹ ورک کنکشن مسائل کی تشخیص کریں اور سرور یا CDN نوڈ کی جیوگرافیک جگہ کی تصدیق کریں۔

جیو لیکیشن

صارف کے IP کے مطابق مقامی مواد، زبان یا خدمات فراہم کریں (جیسے CDN ڈسٹری بیشن)۔

عام سوالات

IP ایڈریس کی جیو لیکیشن درست ہوتی ہے؟

IP جیوگرافیک لیکیشن عام طور پر شہر کے سطح تک درست ہوتی ہے، جس میں چند دہوں سے کئی سو کلومیٹر کا فرق ہو سکتا ہے۔ IP ایڈریس کے ذریعے کسی خاص گلی یا گھر کا پتہ نہیں ملا جا سکتا۔

میرا IP ایڈریس کیوں تبدیل ہوتا ہے؟

زیادہ تر گھریلو براڈ بینڈ متحرک IP تقسیم (DHCP) استعمال کرتے ہیں، جس میں آپریٹر اپنے IP ایڈریس کو منظم طور پر تبدیل کرتا ہے۔ کاروبار یا سرور عام طور پر مستقل IP (سٹیٹک IP) استعمال کرتے ہیں۔

میرا اصل IP کیسے چھپائیں؟

اصل IP چھپانے کے لیے آپ VPN، پروکسی سرور یا Tor نیٹ ورک استعمال کر سکتے ہیں۔ لیکن توجہ دیں کہ یہ خدمات انٹرنیٹ کی رفتار اور کچھ ویب سائٹس تک رسائی کو متاثر کر سکتی ہیں۔

میرے پاس دو IP ایڈریس کیوں ہیں؟

شاید آپ کے پاس IPv4 اور IPv6 دونوں ایڈریس ہیں۔ جدید نیٹ ورکس IPv4 سے IPv6 کی طرف منتقل ہو رہے ہیں، اور بہت سے ڈیوائسز دونوں پروٹوکولز کو سپورٹ کرتے ہیں۔

IP ایڈریس کیا ہے؟

IP (انٹرنیٹ پروٹوکول) ایڈریس انٹرنیٹ پر ڈیوائس کا منفرد شناختی نشان ہے، جیسے کہ حقیقی دنیا میں گھر کا نمبر۔ ہر انٹرنیٹ سے جڑی ڈیوائس کا ایک IP ایڈریس ہوتا ہے جو نیٹ ورک میں اسے تلاش اور مواصلات کے لیے استعمال ہوتا ہے۔

IPv4 بمقابلہ IPv6: IPv6 کیوں ضروری ہے؟

IPv4 (1981)

شکل: 4 دہائی نمبرز (مثال: 192.168.1.1)

کل: تقریباً 4.3 ارب ایڈریسز (2³² = 4,294,967,296)

مسئلہ: ایڈریسز کا خاتمہ ہو چکا ہے، جو 2011 میں ہی مکمل ہو چکا تھا

لمبائی: 32 بٹ

IPv6 (1998)

فارمیٹ: 8 گروہ ہیکسادیسیمال نمبرز (مثلاً 2001:0db8::1)

کل: تقریباً 340 ٹریلین ٹریلین ٹریلین پتے (2¹²⁸)

فوائد: پتے کی تعداد تقریباً لامحدود ہیں، زمین پر ہر ریت کے دانے کو مختص کرنے کے لیے کافی

لمبائی: 128 بٹ

کیوں IPv4 کافی نہیں؟

  • • دنیا کی آبادی 8 ارب ہے، ہر فرد کے پاس کم از کم 2-3 ڈیوائسیں ہیں (فون، کمپیوٹر، ٹیبلٹ)
  • • آئی او ٹی ڈیوائسز کا بہت تیزی سے اضافہ (سمارٹ ہوم، کاریں، پہننے والے ڈیوائسز)
  • • کمپنیاں اور ڈیٹا سینٹرز کو بہت زیادہ IP پتے درکار ہیں
  • • ابتدائی تقسیم غلط تھی (جیسے MIT کے پاس 16 ملین IP ہیں)

خاص IP ایڈریس سیگمنٹس

لوپ بیک ایڈریس (Loopback)

127.0.0.0/8 (127.0.0.1 - 127.255.255.255)

مقامی ٹیسٹنگ کے لیے استعمال ہوتا ہے، ڈیٹا نیٹ ورک پر نہیں بھیجا جاتا، عام طور پر localhost کو 127.0.0.1 سے ظاہر کیا جاتا ہے

استعمال: مقامی سروسز ٹیسٹ کرنا، ڈیولپمنٹ اور ڈیبگنگ

نجی ایڈریس (Private)

  • 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 سرور دستیاب نہ ہو تو سسٹم خودکار طور پر مختص کرتا ہے

استعمال: خودکار ترتیب (نیٹ ورک ترتیب ناکام ہونے کا اشارہ)

مُلٹی کاسٹ ایڈریس (Multicast)

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 سرورز

گوگل DNS

8.8.8.8 / 8.8.4.4

2001:4860:4860::8888 / 2001:4860:4860::8844

دنیا کا سب سے تیز اور سب سے مستحکم، DNSSEC کی حمایت کرتا ہے

کلاؤڈفلئر 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

  • علی بابا کلاؤڈ 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 نے تحقیق کے لیے کئی ملین امریکی ڈالر میں خریدا تھا۔ کچھ "شاندار" IP (جیسے 8.8.8.8، 1.1.1.1) بہت قیمتی ہیں، جن میں Cloudflare نے ٹیلیکام کمپنیوں سے 1.1.1.1 خریدنے کے لیے بہت زیادہ رقم ادا کی۔

📍 کیوں ایک ہی IP مختلف مقامات ظاہر کرتا ہے؟

  • • IP جغرافیائی ڈیٹا بیسز مختلف ہیں (ہر API کا ڈیٹا سورس مختلف ہوتا ہے)
  • • موبائل IP پتے تبدیل ہوتے رہتے ہیں (آپریٹرز کی طرف سے دوبارہ تفویض)
  • • VPN/پروکسی سرور (پروکسی سرور کا مقام ظاہر کرتا ہے)
  • • CDN نوڈس (قریبی CDN سرور کا مقام ظاہر کرتا ہے)
  • • موبائل نیٹ ورک (بیس اسٹیشن کا مقام غلط ہو سکتا ہے)

📊 IPv6 کی عامیانہ استعمال کی شرح

2024 تک، عالمی سطح پر IPv6 کی عامیانہ استعمال کی شرح تقریباً 40% ہے، جس میں بھارت، امریکہ اور جرمنی اگے ہیں، جبکہ چین میں یہ تقریباً 30% ہے۔ بلجئیم دنیا بھر میں سب سے زیادہ IPv6 استعمال کرنے والا ملک ہے، جہاں 60% سے زیادہ استعمال ہوتا ہے۔

🎂 پہلا IP پتہ

1 جنوری 1983 کو، انٹرنیٹ نے TCP/IP پروٹوکول کو مکمل طور پر اپنایا، اور پہلا IP پتہ وجود میں آیا۔ BBN Technologies کے لیونارڈ کلائن راک کو پہلا IP پتہ استعمال کرنے والا سمجھا جاتا ہے۔

🗑️ IP پتہ تقسیم کا ناانصافی

ابتدائی انٹرنیٹ میں IP پتہ تقسیم بہت زیادہ سخی تھی: MIT (ایک یونیورسٹی) کے پاس 16 ملین IP (پورا 18.0.0.0/8) تھے، اور ایپل کمپنی کے پاس بھی 16 ملین IP (17.0.0.0/8) تھے۔ جبکہ پورے چین کو صرف تقریباً 330 ملین IP پتے ملے، جن پر تقریباً ایک ارب انٹرنیٹ صارفین کو سرو کرنا تھا — اگر ہر صارف کے 2 ڈیوائسز کی فرض کی جائے، تو کم از کم 2 ارب IP پتے درکار ہوں گے۔ اس ناانصافی کی وجہ سے چین کو IP پتہ شیئرنگ کے لیے NAT ٹیکنالوجی کا بہت زیادہ استعمال کرنا پڑا۔

🚫 IP بلاک لسٹ

دُنیا بھر میں کئی IP بلاک لسٹ ڈیٹا بیسز (جیسے Spamhaus) ہیں جو اسپیم، میلویئر، DDoS حملوں سمیت دیگر خطرناک IP ایڈریسز کو نشان زد کرتے ہیں۔ اگر کوئی IP بلاک لسٹ میں چلا جائے، تو اس کی وجہ سے ای میل رد ہو سکتی ہے یا ویب سائٹ بلاک ہو سکتی ہے۔

🤯 IP جیو لوکیشن کے عجیب و غریب کیسز

امریکہ کے کنساس ریاست میں ایک عام گھر کو ماک مائنڈ کمپنی کے IP ڈیٹا بیس نے ڈیفالٹ لیکیشن (38°N 97°W، امریکہ کا جغرافیائی مرکز) قرار دے دیا، جس کی وجہ سے لاکھوں ایڈریسز جنہیں درست طور پر لوکیٹ نہیں کیا جا سکا، وہیں کی طرف اشارہ کرنے لگے۔ اس گھر والوں کو بے وقت "امریکہ کا ہیکرز گھر" سمجھا جانے لگا، جس کی وجہ سے انہیں فی سی بی، پولیس، قرض دہندہ، اور فریڈ کے شکاروں کی طرف سے لاکھوں فون کالز اور گھر آنے کی کوششیں ہوئیں، اور کبھی کبھی رات کے وقت دروازے توڑ کر گھر میں گھس جانے کی کوشش بھی ہوئی۔ 2016 میں، انہوں نے ماک مائنڈ کے خلاف عدالت میں دعویٰ کیا اور آخرکار انہیں معاوضہ ملا۔

💸 IPv4 ایڈریسز خریدی جا سکتی ہیں

IPv4 ایڈریسز کے ختم ہونے کی وجہ سے، IP ایڈریسز اب ایک ٹریڈ کی جانے والی چیز بن گئے ہیں۔ کالا بazar میں ان کی قیمت 40 ڈالر فی ایڈریس تک پہنچ سکتی ہے۔ 2011 میں، مائیکروسافٹ نے نارٹیل کمپنی سے 666,000 IPv4 ایڈریسز خریدے، جس کی کل قیمت 7.5 ملین ڈالر تھی، یعنی اوسطاً ہر ایڈریس 11.25 ڈالر۔ 2014 میں، ایمیزون، مائیکروسافٹ سمیت دیگر ٹیک گیگز نے IPv4 ایڈریسز کی خریداری میں تیزی سے دلچسپی لی اور قیمتیں اچانک بڑھ گئیں۔

🤦 IPv4 ڈیزائنرز کا "غلط اندازہ"

1981 میں، IPv4 کے ڈیزائنرز کا خیال تھا کہ "4.2 ارب ایڈریسز، انسان کی زندگی بھر کے لیے کافی ہیں"۔ انہوں نے بالکل نہیں سوچا تھا کہ انٹرنیٹ آج کے تناظر میں کتنا بڑھ جائے گا: دنیا بھر کے 8 ارب افراد، جن میں سے ہر ایک کے پاس کم از کم 2-3 ڈیوائس ہیں، اور IoT ڈیوائسز کی تیز رفتار تعداد میں اضافہ۔ اگر انہوں نے ابتداء میں 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 ایڈریسز کا ختم ہونے کا اوقاتی جدول

2 فروری 2011 کو، IANA نے آخری IPv4 ایڈریس بلاکس کو تقسیم کر دیا۔ 15 اپریل 2011 کو، ایشیا پیسیفک علاقہ (APNIC) ختم ہو گیا۔ ستمبر 2012 میں، یورپ (RIPE NCC) ختم ہو گیا۔ ستمبر 2015 میں، شمالی امریکہ (ARIN) ختم ہو گیا۔

📏 سب سے لمبا IP ایڈریس

IPv6 ایڈریس کی زیادہ سے زیادہ لمبائی 39 کریکٹرز ہو سکتی ہے (8 گروپ، ہر گروپ میں 4 ہیکسیڈیسیمل نمبر اور 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

رجسٹر کریں اور 1 لاکھ مفت درخواستیں حاصل کریں

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) استعمال کرتی ہے، تو اصل IP کو خاص HTTP ہیڈ سے حاصل کرنا ہوگا
  • • ترجیح: CF-Connecting-IP > X-Forwarded-For > X-Real-IP > RemoteAddr
  • • X-Forwarded-For میں متعدد IP (کاما سے الگ) ہو سکتے ہیں، پہلا IP صارف کا اصل IP ہوتا ہے
  • • براؤزر پر JavaScript مستقیم طور پر IP حاصل نہیں کر سکتا، تیسری طرف کی API کا استعمال کرنا ہوگا