আমার পাবলিক আইপি নির্ধারণের জন্য আদেশ?


636

আমি যদি গুগল দিয়ে পরীক্ষা করি তবে আমি আমার সর্বজনীন আইপি দেখতে পাচ্ছি। উবুন্টু কমান্ড লাইনে এমন কিছু আছে যা আমাকে একই উত্তর দেবে?


2
"ডায়নামিক আইপি থাকা", "এসএসএইচটি ইন্টারনেট জুড়ে অন্য কোনও সিস্টেম ব্যবহার করে", "কমান্ড যা বর্তমান পাবলিক আইপি প্রদর্শন করবে"। আপনি এখানে মুরগী ​​/ ডিমের সমস্যা দেখতে পাচ্ছেন? আপনি কীভাবে কোনও দূরবর্তী সার্ভারের ঠিকানা না জেনে কমান্ডগুলি চালাতে সক্ষম হবেন? আপনি no-ip.com / DynDNS.org এর মতো পরিষেবার ক্ষেত্রে আরও আগ্রহী হতে পারেন।
জার্মটভিডিজক

আমার বন্ধু পাবলিক আইপি না জেনে কেউ এসএসএইচ করতে পারে না ... ডিনডএনএসের জন্য প্রচুর ব্যয় এবং নো-আইপি শক্ত কাজ কিন্তু পরিস্থিতি এটির অনুমতি দেয় না ... যাইহোক প্রশ্নের উত্তর ইতিমধ্যে দেওয়া হয়েছে .. আপনার পরামর্শের জন্য ধন্যবাদ
ভাবেশ দেওয়ান

1
PS duckduckgo.com/?q=ip (কোনও কমান্ড লাইন নেই, তবে কোনও বড় ভাই জিও নয়)
ক্যাম্পা

1
হতে পারে এটি একটি পৃথক প্রশ্ন হওয়া উচিত, তবে আমার সার্বজনীন আইপি ঠিকানা পরিবর্তন হলে আমি একটি সতর্কতা দেখতে চাই। আপাতত, আমি ক্রোনটব সহ নিম্নলিখিত উত্তরগুলি ব্যবহার করছি notify-send
পিজে ব্রুনেট

নীচে দুর্দান্ত সমাধান। Centos ব্যবহারের জন্য: ifconfig eth1 | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*inet *([^ ]+).*/\2/p}'যেখানে eth1 হল নেটওয়ার্ক ডিভাইস হে আগ্রহী, আপনি সমস্ত অ্যাডাপ্টারের সমস্ত আইপি দেখানোর জন্য 'et1' স্ট্রিংটি বাদ দিতে পারেন। পরিবর্তে \2আপনি \1 \2প্রতিটি অ্যাডাপ্টারের নামগুলি দেখতেও লিখতে পারেন ।
হাফেনক্রিনিচ

উত্তর:


916

আপনি যদি রাউটারের পিছনে না থাকেন তবে এটি ব্যবহার করে খুঁজে বের করতে পারেন ifconfig

যদি আপনি কোনও রাউটারের পিছনে থাকেন তবে রাউটারটি কোনও নেটওয়ার্ক ঠিকানা অনুবাদ করে সেহেতু আপনার কম্পিউটারটি পাবলিক আইপি ঠিকানা সম্পর্কে জানতে পারবে না। আপনি কিছু ওয়েবসাইট জিজ্ঞাসা করতে পারেন আপনার সার্বজনীন আইপি ঠিকানাটি কী ব্যবহার করছে curlবা wgetএটি থেকে আপনার প্রয়োজনীয় তথ্যটি বের করতে পারে:

curl -s https://checkip.dyndns.org | sed -e 's/.*Current IP Address: //' -e 's/<.*$//'  

বা সংক্ষিপ্ত

curl https://ipinfo.io/ip

27
ty - আমি পোস্ট করার ঠিক পরে, আমি বুঝতে পেরেছিলাম যে আমি প্রথমে একটি উত্তর গুগল করিনি: দেখে মনে হচ্ছে এটি কাজ করবে curl -s checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//' অন্যান্য সম্ভাবনাগুলি এখানে তালিকাভুক্ত করা হয়েছে: go2linux.org/ কি-is-my-public-ip-adress-with-linux
kfmfe04

1
নিশ্চিত - আপনি আপনার উত্তরে এটি যুক্ত করতে পারেন
kfmfe04

1
স্পষ্ট করার জন্য: এটি ছিল একটি হ্যাক এবং খুব কুৎসিত একটি, তাই আমি এটিকে সহজ এবং এমন কিছু বানানোর জন্য একটি সম্পাদনা করেছি যা লোক মনে রাখতে পারে।
jrg

2
জিওভান্নি পি যেমন বলেছেন ঠিক তেমনি ওপি'র স্বীকৃত আনসারটি পরিবর্তন করা উচিত।
লুস্ট্রো

36
curl -s ipinfo.io/ip
chao

385

বাহ্যিক আইপি সন্ধানের জন্য, আপনি হয় বাহ্যিক ওয়েব-ভিত্তিক পরিষেবাগুলি ব্যবহার করতে পারেন, বা সিস্টেম ভিত্তিক পদ্ধতি ব্যবহার করতে পারেন। বাহ্যিক পরিষেবাটি ব্যবহার করা সহজতর, ifconfigভিত্তিক সমাধানগুলি কেবল আপনার সিস্টেমে কাজ করবে যদি আপনি কোনও এর পিছনে না থাকেন NAT। দুটি পদ্ধতি বিস্তারিতভাবে নীচে আলোচনা করা হয়েছে।

বাহ্যিক পরিষেবা ব্যবহার করে বাহ্যিক আইপি সন্ধান করা

কমান্ডলাইন ব্রাউজার বা ডাউনলোড সরঞ্জামের মাধ্যমে বাহ্যিক পরিষেবা ব্যবহার করা সবচেয়ে সহজ উপায়। যেহেতু wgetউবুন্টুতে ডিফল্টরূপে উপলব্ধ, আমরা এটি ব্যবহার করতে পারি।
আপনার আইপি খুঁজে পেতে, ব্যবহার-

$ wget -qO- https://ipecho.net/plain ; echo

সৌজন্যে :

এছাড়াও আপনি ব্যবহার করতে পারে lynx(ব্রাউজার) অথবা curlস্থানে wgetউপরোক্ত কমান্ডের সাথে ছোটখাট পরিবর্তনের সঙ্গে, আপনার বাহ্যিক IP খুঁজে।

curlআইপি খুঁজে পেতে ব্যবহার :

$ curl https://ipecho.net/plain

আরও ভাল ফর্ম্যাটেড আউটপুট ব্যবহারের জন্য:

$ curl https://ipecho.net/plain ; echo

একটি দ্রুততর (তর্কসাপেক্ষে দ্রুততম) পদ্ধতি ব্যবহার করে digসঙ্গে OpenDNSসমাধানকারী হিসাবে:

এখানে অন্যান্য উত্তরগুলি HTTP- র মাধ্যমে একটি রিমোট সার্ভারে যায়। তাদের মধ্যে কিছুকে আউটপুট পার্সিংয়ের প্রয়োজন, বা সার্ভারকে সরল পাঠ্যে প্রতিক্রিয়া জানানোর জন্য ব্যবহারকারী-এজেন্ট শিরোনামের উপর নির্ভর করুন। এগুলি বেশ ঘন ঘন পরিবর্তিত হয় (নীচে যান, তাদের নাম পরিবর্তন করুন, বিজ্ঞাপন দিন, আউটপুট ফর্ম্যাট পরিবর্তন করতে পারে)।

  1. ডিএনএস প্রতিক্রিয়া প্রোটোকল মানক করা হয়েছে (ফর্ম্যাটটি সামঞ্জস্যপূর্ণ থাকবে)।
  2. Icallyতিহাসিকভাবে ডিএনএস পরিষেবাদি (ওপেনডিএনএস, গুগল পাবলিক ডিএনএস, ..) অনেক বেশি সময় বেঁচে থাকে এবং আরও স্থিতিশীল, স্কেলেবল এবং সাধারণত যে কোনও নতুন হিপ হোয়াটস্মিআইপি ডটকমের চেয়ে দেখাশোনা করা হয় আজকের এইচটিটিপি সার্ভিসটি গরম।
  3. (যে গিকগুলি মাইক্রো অপ্টিমাইজেশান সম্পর্কে চিন্তা করে) তাদের জন্য এই পদ্ধতিটি সহজাতভাবে দ্রুত হওয়া উচিত (এটি কেবল কয়েক মাইক্রো সেকেন্ডের মধ্যেই হোক)।

রিসলভার হিসাবে ওপেনডিএনএস দিয়ে ডিগ ব্যবহার করুন:

$ dig +short myip.opendns.com @resolver1.opendns.com

111.222.333.444

থেকে অনুলিপি করা হয়েছে: https://unix.stackexchange.com/a/81699/14497

বাহ্যিক পরিষেবার উপর নির্ভর না করে বাহ্যিক আইপি সন্ধান করা

  • যদি আপনি নিজের নেটওয়ার্ক ইন্টারফেসের নাম জানেন know

আপনার টার্মিনালে নিম্নলিখিত টাইপ করুন:

$ LANG=c ifconfig <interface_name> | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'

উপরে সালে প্রতিস্থাপন <interface_name>আপনার প্রকৃত ইন্টারফেসের নাম দিয়ে যেমন: eth0, eth1, pp0, ইত্যাদি ...

ব্যবহারের উদাহরণ:

$ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
  • আপনি যদি না জানেন তবে আপনার নেটওয়ার্ক ইন্টারফেসের নাম

আপনার টার্মিনালে নিম্নলিখিত টাইপ করুন (এটি আপনার সিস্টেমে প্রতিটি নেটওয়ার্ক ইন্টারফেসের নাম এবং আইপি ঠিকানা পায়):

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'

ব্যবহারের উদাহরণ:

$ LANG=c ifconfig | grep -B1 "inet addr" |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 ": " $3 }'
lo: 127.0.0.1
ppp0: 111.222.333.444

নোট: আউটপুটগুলি নির্দেশক এবং বাস্তব নয়।

সৌজন্য: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/

হালনাগাদ

  1. LANG=cifconfigভিত্তিক ব্যবহারগুলিতে যুক্ত করা হয়েছে , যাতে এটি স্থানীয় বিন্যাস নির্বিশেষে সর্বদা ইংরেজি আউটপুট দেয়।

1
@ জেড 9 আইটি, শিওর .. আপনি উইজেট ইনস্টল করেছেন এমন কোনও লিনাক্স বিতরণে এটি কাজ করা উচিত। যেমনটি আপনার কাছে ইতিমধ্যে কার্ল বা লিঙ্কস উপলব্ধ থাকলে দয়া করে পরিবর্তে এটি ব্যবহার করুন। আপনার ইনস্টল করতে রুট অনুমতি প্রয়োজন হবেsudo apt-get install wget
saji89

13
যদি আপনি কোনও NAT এর পিছনে না থাকেন তবে ifconfig সহ কমান্ডগুলি কেবলমাত্র কাজ করে।
lukassteiner

1
শুধু -wপ্রতিধ্বনির পরিবর্তে কার্ল বিকল্পটি ব্যবহার করুন :)curl -w '\n' ident.me
drAlberT

3
ডিগ ব্যবহারের এই প্রস্তাবটি বেশ সুন্দর ইউনিক্স.স্ট্যাকেক্সেক্সঞ্জ
প্রশ্নগুলি /

4
বাহ্যিক পরিষেবা ব্যতীত সর্বশেষ সংস্করণটি কেবল তখনই কাজ করে, যদি আপনার কম্পিউটারটি সরাসরি ইন্টারনেটের সাথে সংযুক্ত থাকে যা খুব কমই ঘটে থাকে, অন্যথায় আপনি কেবলমাত্র আপনার স্থানীয় আইপি ঠিকানা পান।
rubo77

117

আমার প্রিয় সবসময় হয়েছে:

curl ifconfig.me

সহজ, টাইপ করা সহজ।

আপনাকে প্রথমে কার্ল ইনস্টল করতে হবে;)

যদি ifconfig.me নিচে থাকে তবে icanhazip.com এবং অথবা ipecho.net ব্যবহার করে দেখুন

curl icanhazip.com

অথবা

curl ipecho.net

3
@ জেড 9 আইটি, আমি এখনই এটি পরীক্ষা করেছি। হ্যাঁ, এটি আপনার টার্মিনালে বাহ্যিক আইপি আউটপুট দেয়।
saji89

7
থেকে প্রতিক্রিয়া সময় ifconfig.meতুলনায় কিছুটা ধীর মনে হচ্ছে ipecho.net
ড্রয় নোকস

3
আপনার যদি না থাকে curlতবে wget:wget -U curl -qO- ifconfig.me
স্টাফেন চেজেলাস

2
ifconfig.me দেখে মনে হচ্ছে না :(
আসফ্যান্ড কাজী

1
@ আসফ্যান্ডইয়ারকিজি - এখানে কাজ করা। আপনি বিকল্পগুলির মধ্যে একটি চেষ্টা করতে পারেন, icanhazip.com
প্যান্থার

60

আইকানহাজিপ ডট কম আমার প্রিয়।

curl icanhazip.com

আপনি IPv4 স্পষ্টভাবে অনুরোধ করতে পারেন:

curl ipv4.icanhazip.com

আপনার যদি না থাকে তবে curlআপনি wgetপরিবর্তে এটি ব্যবহার করতে পারেন :

wget -qO- icanhazip.com

ধন্যবাদ! আইপিভি 6-সক্ষম এমন কিছু না পাওয়া পর্যন্ত আমাকে উপরে প্রস্তাবিত অনেকগুলি চেষ্টা করে দেখতে হয়েছিল। এটি লজ্জাজনক যে এই ধরনের পরিষেবাগুলি সাধারণত এখনও কেবল আইভিভি 4-থাকে।
ভ্লাদিমার অুনাট

48

আমি সবকিছু বিরক্তিকর এবং ধীর বলে মনে করেছি, তাই আমি নিজের লেখা wrote এটি সহজ এবং দ্রুত।

এর এপিআইটি http://api.ident.me/ এ রয়েছে

উদাহরণ:

curl ident.me
curl v4.ident.me
curl v6.ident.me

1
ওহ, সত্যিই দ্রুত ছিল !
ওয়াল্ডরিয়াস

1
আমি আইসানহাজিপ.কম সমাধানটি দ্রুত খুঁজে পাই এবং এতে আউটপুটে একটি নতুন লাইন অন্তর্ভুক্ত।
টাইলার কলিয়ার

1
হ্যাঁ, এটি ইতিমধ্যে খুব দ্রুত ছিল। শুধু আমার সমাধান টুইট।
পিয়ের ক্যারিয়ার

2
যশ! 2 বছর এবং আপনি এখনও এটি বজায় রাখছেন। সাবাশ. "আমাকে পরিচয় দিন", আমার আইপি চেক দরকার হলে এটিই আসে :)
মোহনিশ

আওস দ্রুততর time curl http://checkip.amazonaws.com> - 0.91sবনাম .241sজন্য ident.me); আসুন শুধু আওস প্রার্থনা স্বল্পতা নামা এর
Avindra Goolcharan

42

আপনার সার্বজনীন আইপি সন্ধানের জন্য আপনি HTTP অনুরোধের পরিবর্তে একটি ডিএনএস অনুরোধটি ব্যবহার করতে পারেন:

$ dig +short myip.opendns.com @resolver1.opendns.com

এটি আপনার আইপি ঠিকানায় ical resolver1.opendns.comন্দ্রজালিক myip.opendns.comহোস্টনেম সমাধান করতে ডিএনএস সার্ভার ব্যবহার করে ।


3
এটি সত্যিই দ্রুত। আমি একটি ওয়ার্মআপ এক্সিকিউশন করেছি, তারপরে এর প্রতিটি এবং 10 টি মৃত্যুদন্ড কার্যকর করা হয়েছে curl icanhazip.comcurlসংস্করণটির গড় : 174 মিমি। শুধুমাত্র ডিএনএস-একমাত্র সংস্করণের জন্য গড়: 9 এস। X 19x দ্রুত। আরও দেখুন: unix.stackexchange.com/a/81699/8383
অ্যাডাম

1
@ অ্যাডামনসন লিঙ্কটির জন্য আপনাকে ধন্যবাদ। ডিএনএস ব্যবহার করার বিষয়টি (যে উত্তরটির সাথে আপনি সংযুক্ত করেছেন উত্তরটি বলেছেন) যে প্রতিক্রিয়াটি স্ট্যান্ডার্ড (এবং পরিবর্তনের সম্ভাবনা নেই) এবং পরিষেবা (ওপেনডিএনএস) তার বেশিরভাগ HT বিকল্পের চেয়ে বেশি সময় ধরে থাকতে পারে। অনুরোধটি করতে যে সময় লাগে তা কমান্ড শুরু হওয়ার পরে ছায়া হয়ে থাকতে পারে।
jfs

হাঁ। curlনিজে থেকে ধীর থাকলে আমি অবাক হব না dig। এমনকি তাদের যথাসম্ভব অনুরূপ curlহতে আবারও লেখা হলেও এখনও ধীর হবে; এটি HTTP ব্যবহার করে ( ডিএনএস সহ ) এবং digকেবল ডিএনএস ব্যবহার করে।
অ্যাডাম মনসেন

22

আমাজন এডাব্লুএস

curl http://checkip.amazonaws.com

নমুনা আউটপুট:

123.123.123.123

আমি এটা পছন্দ করি কারণ:

  • এটি কেবল প্লেইনটেক্সট আইপি দেয়, অন্য কিছুই না
  • এটি কোনও পরিচিত সরবরাহকারীর কাছ থেকে যা শীঘ্রই যে কোনও সময় অফলাইনে যাওয়ার সম্ভাবনা নেই

18

আমি যেটি ব্যবহার করছি তা হ'ল:

wget -O - -q icanhazip.com

হ্যাঁ, আপনি আইপি :-) থাকতে পারেন


3
আমি পছন্দ করি curl icanhazip.comকখনও কখনও wgetকেবল একমাত্র উপলব্ধ, তবে কখনও কখনও কোনওটিও wgetউপলভ্য হয় না এবং curlএটি আপনার একমাত্র বিকল্প (ওএস / এক্স এর মতো)। যে কোনও উপায়ে curl icanhazip.comপ্রায় curl ifconfig.meযতই সহজ ততই মজাদার ;-)
ট্রাই ট্রাইআগেইন

11

এটি হুবহু টাইপ করুন, Enterযেখানে নির্দেশিত টিপুন :

telnet ipecho.net 80Enter
GET /plain HTTP/1.1Enter
HOST: ipecho.net Enter
BROWSER: web-kitEnter
Enter

এটি ম্যানুয়ালি একটি এইচটিটিপি অনুরোধ জমা দেয়, যা আপনার আইপিটি নীচের দিকে ফিরে আসবে HTTP/1.1 200 OK reply

উদাহরণ আউটপুট:

$ telnet ipecho.net 80
Trying 146.255.36.1...
Connected to ipecho.net.
Escape character is '^]'.
GET /plain HTTP/1.1
HOST: ipecho.net
BROWSER: web-kit

HTTP/1.1 200 OK
Date: Tue, 02 Jul 2013 07:11:42 GMT
Server: Apache
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control: no-cache
Pragma: no-cache
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html

f
111.222.333.444
0

6
ভাল, এটি ভাল কাজ করেছে, কার্ল ইনস্টল না করা আমার পক্ষে একটি সুবিধা ছিল: একটি লাইনার: প্রিন্টফ "জিইটি / প্লেইন এইচটিটিপি / ১.১ \ n হস্ট: আইপেকো.নেট \ n ব্রাউজার: ওয়েব-কিট \ n \ n" | এনসি ipecho.net 80
ওজোন

9

আরেকটি দ্রুততম (তুলনামূলকভাবে দ্রুততমও হতে পারে)

curl ipecho.net/plain

9

এই জন্য, স্টান উদ্ভাবিত হয়েছিল। ক্লায়েন্ট হিসাবে আপনি সর্বজনীনভাবে উপলভ্য স্টান সার্ভারে একটি অনুরোধ পাঠাতে পারেন এবং এটি যে আইপি ঠিকানা দেখছে তা ফিরিয়ে দিতে পারেন। নিম্ন স্তরের হোয়াটস্মিআইপ ডট কমকে বাছাই করুন কারণ এটি কোনও HTTP এবং কোনও স্মার্টলি কার্টেড ডিএনএস সার্ভার ব্যবহার করে না তবে তীব্র দ্রুত স্টান প্রোটোকল।

ব্যবহার stunclient

আপনি যদি stunclientইনস্টল করে থাকেন ( apt-get install stuntman-clientডিবিয়ান / উবুন্টুতে) আপনি সহজভাবে করতে পারেন:

$stunclient stun.services.mozilla.com
Binding test: success
Local address: A.B.C.D:42541
Mapped address: W.X.Y.Z:42541

A.B.C.Dস্থানীয় নেটে আপনার মেশিনের আইপি ঠিকানাটি কোথায় এবং W.X.Y.Zওয়েবসাইটগুলির মতো আইপি অ্যাড্রেস সার্ভারগুলি বাইরে থেকে (এবং আপনি যেটিকে সন্ধান করছেন) দেখুন। sedআপনি ব্যবহার করে উপরের আউটপুটটিকে কেবলমাত্র একটি আইপি ঠিকানায় হ্রাস করতে পারে:

stunclient stun.services.mozilla.com |
    sed -n -e "s/^Mapped address: \(.*\):.*$/\1/p"

যাইহোক, আপনার প্রশ্নটি কীভাবে এটি কমান্ড লাইনটি ব্যবহার করে খুঁজে পাবেন, যা কোনও STUN ক্লায়েন্ট ব্যবহার করে বাদ দিতে পারে। তাই আমি অবাক ...

ব্যবহার bash

একটি STUN অনুরোধ handcrafted করা যেতে পারে, ব্যবহার করে একটি বাহ্যিক প্রচেষ্টা চালায় STUN সার্ভারে পাঠানো netcatএবং পোস্ট দ্বারা প্রক্রিয়াকৃত ব্যবহার করা dd, hexdumpএবং sedযেমন:

$echo -en '\x00\x01\x00\x08\xc0\x0c\xee\x42\x7c\x20\x25\xa3\x3f\x0f\xa1\x7f\xfd\x7f\x00\x00\x00\x03\x00\x04\x00\x00\x00\x00' |
    nc -u -w 2 stun.services.mozilla.com 3478 |
    dd bs=1 count=4 skip=28 2>/dev/null |
    hexdump -e '1/1 "%u."' |
    sed 's/\.$/\n/'

প্রতিধ্বনি একটি বাইনারি স্টুন অনুরোধ (0x0001 নির্দেশক বাঁধাইয়ের অনুরোধ নির্দেশ করে) এর দৈর্ঘ্য 8 (0x0008) এবং কুলি 0xc00cee এবং ওয়্যারশার্ক থেকে কিছু আটকানো স্টাফ সংজ্ঞায়িত করে। বাহ্যিক আইপি প্রতিনিধিত্বকারী কেবলমাত্র চারটি বাইট উত্তর থেকে পরিষ্কার করা এবং মুদ্রণ করা হয়।

কাজ করা, তবে উত্পাদন ব্যবহারের জন্য প্রস্তাবিত নয় :-)

পিএস অনেক স্টান সার্ভার উপলব্ধ কারণ এটি এসআইপি এবং ওয়েবআরটিটিসির জন্য একটি মূল প্রযুক্তি। মজিলা থেকে একটি ব্যবহার করা নিরাপদ গোপনীয়তার ভিত্তিতে হওয়া উচিত তবে আপনি অন্যটি ব্যবহার করতে পারেন: স্টান সার্ভারের তালিকা


জিকিস্টেস্ট এবং আসলে বেশিরভাগ এপ্রোপোস প্রযুক্তির জন্য +1। HTTP ক্যোয়ারীটি কাজ করে, যা আমি আমার সারা জীবন ব্যবহার করে চলেছি, তবে আমি পছন্দ করি যে প্রশ্নটিতে আসলে কিছু চিন্তা রয়েছে। আমি এটা জানতাম না। ধন্যবাদ!
মাইক এস

7

টেলনেটের মাধ্যমে আমার এটির জন্য একটি বোকা পরিষেবা রয়েছে। এটার মতো কিছু:

telnet myip.gelma.net

Your IPv4: xxx.xxx.xxx.xxx
Your IPv6: ::ffff:xxxx:xxxx

এটি বিনামূল্যে নির্দ্বিধায়।


5

আপনি শুধুমাত্র ব্যাশ ব্যবহার না করেই একটি ওয়েব পেজ পড়তে পারেন curl, wget:

$ exec 3<> /dev/tcp/icanhazip.com/80 && # open connection
  echo 'GET /' >&3 &&                   # send http 0.9 request
  read -u 3 && echo $REPLY &&           # read response
  exec 3>&-                             # close fd

এটির সাথে checkip.amazonaws.com
মিলিতটি

1
@ আভিন্দ্রগোলচরণ একটি ডিএনএস অনুরোধ ব্যবহার করে দেখুন
jfs

2

আমাদের রাউটারগুলিতে লগইন অ্যাক্সেস সহ আমরা তাদের জন্য, রাউটারের এটি জানতে চাইলে একটি স্ক্রিপ্ট ব্যবহার করে এর 'ডাব্লুআইএন আইপি ঠিকানাটি বাহ্যিক আইপি ঠিকানা নির্ধারণের সবচেয়ে কার্যকর উপায় efficient উদাহরণস্বরূপ নিম্নলিখিত পাইথন স্ক্রিপ্টটি আমার মেডিয়ালিং এমডাব্লুএন-ডাব্লুপিআর 30000 রাউটারের জন্য বাহ্যিক আইপি প্রিন্ট করে:

import urllib, urllib2, cookielib
import re
from subprocess import check_output as co

cookie_jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_jar))
urllib2.install_opener(opener)

def get(url, values=None):
  data = None
  if values: data = urllib.urlencode(values)
  req = urllib2.Request(url, data)
  rsp = urllib2.urlopen(req)
  return rsp.read()

router = co(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
url = "http://" + router

get(url+"/index.asp")
get(url+"/LoginCheck", dict(checkEn='0', Username='admin', Password='admin'))
page = get(url+"/system_status.asp")

for line in page.split("\n"):
  if line.startswith("wanIP = "):
    print line.split('"')[1]
    exit(1)

মনে রাখবেন যে এটি খুব সুরক্ষিত নয় (যেমন প্লেইন টেক্সট শংসাপত্রাদি এবং বেশিরভাগ রাউটারগুলিতে লগ ইন করার ক্ষেত্রে হয়), এবং অবশ্যই বহনযোগ্য নয় (প্রতিটি রাউটারের জন্য পরিবর্তন করা দরকার)। এটি যদিও খুব দ্রুত এবং একটি শারীরিক সুরক্ষিত হোম নেটওয়ার্কের জন্য একটি সম্পূর্ণ যুক্তিসঙ্গত সমাধান।

অন্য রাউটারের জন্য স্ক্রিপ্টটি কাস্টমাইজ করতে, আমি HTTP কী অনুরোধ করবে তা নির্ধারণ করার জন্য ফায়ারফক্সে টেম্পারডেটা অ্যাডন ব্যবহার করার পরামর্শ দিই।


2
আপনার রাউটারের আইপি ঠিকানাটি ব্যাকরণীয়ভাবে পাওয়ার চেষ্টা করা উচিত। উদাহরণস্বরূপ router = subprocess.check_output(['ip', '-o', 'ro', 'list', '0.0.0.0/0']).split()[2]
ক্রিশ্চিয়ান সিউপিতু

2

এগুলি স্থানীয় আইপিগুলি পাবেন:

ifconfig

বা স্বল্প আউটপুট জন্য:

ifconfig | grep inet

এছাড়াও

ip addr show

এবং সম্ভবত:

hostname -I

এটি বাহ্যিক আইপি পাওয়া উচিত

wget http://smart-ip.net/myip -O - -q ; echo

এনবি যদি আপনি ইনস্টল করতে আপত্তি না করেন তবে এটিও curl:

curl http://smart-ip.net/myip

1
ifconfig | sed -nre '/^[^ ]+/{N;s/^([^ ]+).*addr: *([^ ]+).*/\1,\2/p}'স্থানীয় ইন্টারফেস এবং সংশ্লিষ্ট ভি 4 আইপি
হান্নু

1
ifconfig | sed -nre '/^[^ ]+/{N;N;s/^([^ ]+).*addr: *([^ ]+).*addr: *([^ ]+).*/\1,\2,\3/p}'- ভি 4 এবং ভি 6 আইপি
হান্নু

2

অনেক হোম রাউটারগুলি ইউপিএনপি দ্বারা অনুসন্ধান করা যেতে পারে:

curl "http://fritz.box:49000/igdupnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>" -s

তারপরে, উত্তর থেকে আইপি ঠিকানা গ্রেপ করুন।

grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>'

2

আপনি যদি ডিডি-ডাব্লুআরটি ব্যবহার করেন তবে এটি আমার পক্ষে কাজ করে:

curl -s 192.168.1.1 | grep "ipinfo" | awk -v FS="(IP: |</span)" '{print $2}'

অথবা

curl -s -u your_ddwrt_username:your_ddwrt_password http://192.168.1.1 | grep "ipinfo" | awk -v FS="(IP: |</span)" '{print $2}'
  • যেখানে 192.168.1.1 হল ডিডি-ডাব্লুআরটি রাউটারের গেটওয়ে / রাউটার ল্যান আইপি ঠিকানা।

  • -S উপাদান নীরব মানে (অর্থাত কার্ল প্রগতি সম্পর্কে তথ্য প্রদর্শন করবেন না)।

  • ওহ, আমার উল্লেখ করা উচিত যে আমি উপরেরটি "ডিডি-ডাব্লুআরটি ভি 24-এসপি 2 (01/04/15) স্টাডি" দিয়ে ব্যবহার করি


0

ব্যবহার ip!

ip addr show

তারপরে প্রাসঙ্গিক অ্যাডাপ্টারের সন্ধান করুন ( loএবং সাধারণত নয় eth0) এবং আইপি ঠিকানাটি কাছেই সন্ধান করুন inet


2
প্রশ্নটি সর্বজনীন নয় অভ্যন্তরীণ আইপি ঠিকানাগুলির বিষয়ে
ওল্ফ

0

হয়তো আমি কিছুটা দেরি করেছি, তবে ইনসি এটি মোটামুটি সহজ করতে পারে।

ইনস্টল করুন inxi

sudo apt install inxi

তারপরে নিম্নলিখিত কমান্ডটি চালান

inxi -i

zএই জাতীয় সাইটগুলিতে অনুলিপি এবং পেস্ট করার বিকল্পটি ব্যবহার করে আমার তথ্য দিয়ে ব্লক করা উদাহরণ :

~$ inxi -iz
Network:   Card: NVIDIA MCP77 Ethernet driver: forcedeth
           IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter>
           WAN IP: <filter>
           IF: eth0 ip-v4: <filter> ip-v6-link: N/A

এটি <filter>যেখানে আপনার WAN IP, IPv4, MAC ঠিকানা ইত্যাদি প্রদর্শিত হবে সেখানে তা বলে


-2

কেবল কোনও ওয়েবসাইট বা পরিষেবার জন্য ট্রেস্রোয়েট জারি করুন ..

sudo traceroute -I google.com

আমার রাউটার গেটওয়ে পেরিয়ে যাওয়ার পরে লাইন 2 সর্বদা আমার সর্বজনীন আইপি ঠিকানা বলে মনে হয়।

user@user-PC ~ $ sudo traceroute -I google.com
traceroute to google.com (173.194.46.104), 30 hops max, 60 byte packets
 1  25.0.8.1 (25.0.8.1)  230.739 ms  231.416 ms  237.819 ms
 2  199.21.149.1 (199.21.149.1)  249.136 ms  250.754 ms  253.994 ms**

সুতরাং, একটি bash কমান্ড তৈরি করুন।

sudo traceroute -I google.com | awk -F '[ ]' '{ if ( $2 ="2" ) { print $5 } }'

এবং আউটপুট ...

(199.21.149.1)

আমার মনে হয় না পিএইচপি স্ক্রিপ্টগুলির উপর নির্ভর করা এবং বাছাই করা ভাল অনুশীলন।


এটি আকর্ষণীয়, যদিও এটি ধীরে ধীরে ধীরে ধীরে ধীরে ধীরে আমার বাইরের আইপি পায় না
rubo77

এই উত্তরটি কার্যকর হতে খুব ভুল। আমার কর্পোরেট পরিবেশে আমি আমার আইপি ঠিকানাটি মোটেই পাই না। এটির একমাত্র উপায় হ'ল যদি আপনি বুঝতে পারেন কীভাবে আপনার স্থানীয় রাউটার এবং স্যুইচগুলি তৈরি করা হয় এবং তারপরেও আপনি যে স্থানীয় হপগুলির মধ্য দিয়ে চলেছেন তার উপর নির্ভর করে এটি লাইন 2 এ নাও থাকতে পারে। এই কৌশলটি থেকে সুসংগত অ্যালগরিদম তৈরি করার কোনও উপায় নেই এবং এখানে আরও অনেকগুলি সমাধান রয়েছে যা সহজ এবং প্রতিবার আপনার সঠিক উত্তর পাবে।
মাইক এস

যদিও এটি কিছু বিশেষ কনফিগারেশনে কাজ করতে পারে, আমি আসলে আমার বাহ্যিক আইপিটি কোনও ট্রেস্রয়েটে কখনও দেখিনি। এটি সাধারণত আমার গেটওয়ে (যদি আমি NAT এর পিছনে না থাকি), বা আমার রাউটারের গেটওয়ে, তবে বেশিরভাগই রাউটারটি আরও দূরে is
mivk


-2

একটি গুগল ডিএনএস হওয়া ছাড়া ৮.৮.৮.৮ ব্যতীত কোনও নির্ভরতা ছাড়াই একটি আদেশ:

echo $(ip route get 8.8.8.8 | awk '{print $NF; exit}')

এটি আপনাকে কেবল আপনার স্থানীয় বহির্গামী ইন্টারফেসের আইপি ঠিকানা বলে tells
গুনবার্ট

কমান্ডটি যদি আমি ক্লাউড সার্ভারে চালিত করি তবে সর্বজনীন আইপি ঠিকানাটি প্রদর্শন করে না। প্রশ্ন ছিল না?
রলফ

না, আপনি কোথায় "ক্লাউড সার্ভার" দেখতে পাচ্ছেন?
গুন্টবার্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.