Amri ya kuamua IP yangu ya umma?


Nenda kwa jibu lililokubaliwa


Ikiwa nitaangalia na google , naweza kuona IP yangu ya umma. Je! Kuna kitu kwenye safu ya amri ya Ubuntu ambayo itanipa jibu moja?


651





2012-01-16




Idadi ya majibu: 22


Ikiwa hauko nyuma ya router, unaweza kuipata ikitumia ifconfig .

Ikiwa uko nyuma ya router, basi kompyuta yako haitajua anwani ya umma ya IP kwani router hufanya tafsiri ya anwani ya mtandao. Unaweza kuuliza baadhi ya wavuti ni anwani yako ya umma ya IP inatumia curl au wget na toa habari unayohitaji kutoka kwake:

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

au mfupi

 curl https://ipinfo.io/ip
 

935


2012-01-16

Kwa kutafuta ip ya nje, unaweza kutumia huduma za nje za wavuti, au kutumia njia za msingi wa mfumo. Moja rahisi ni kutumia huduma ya nje, pia ifconfig suluhisho msingi utafanya kazi katika mfumo wako ikiwa hauko nyuma ya NAT . Njia hizi mbili zimejadiliwa hapa chini kwa undani.

Kupata IP ya nje kwa kutumia huduma za nje

Njia rahisi ni kutumia huduma ya nje kupitia kivinjari cha kuamuru au zana ya kupakua. Kwa kuwa wget inapatikana kwa default katika Ubuntu, tunaweza kutumia hiyo.
Ili kupata ip yako, tumia-

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

Kwa hisani :

Unaweza kutumia pia lynx (kivinjari) au curl badala ya wget tofauti ndogo kwa amri hapo juu, kupata ip yako ya nje.

Kutumia curl kupata ip:

 $ curl https://ipecho.net/plain
 

Kwa matumizi bora ya pato:

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

Njia ya haraka (inashangaza sana) kutumia dig na OpenDNS kama suluhisho:

Majibu mengine hapa yanapita HTTP kwa seva ya mbali. Baadhi yao yanahitaji kupunguzwa kwa mazao, au kutegemea kichwa cha Wakala wa Mtumiaji ili kufanya seva ijibu kwa maandishi wazi. Pia hubadilika mara kwa mara (kwenda chini, kubadilisha jina lao, kuweka matangazo, ili kubadilisha muundo wa pato nk).

  1. Itifaki ya majibu ya DNS imesimamishwa (muundo utabaki sawa).
  2. Huduma za kihistoria za DNS (OpenDNS, Google Public DNS ..
  3. (kwa geeks ambazo zinajali optimization ndogo), njia hii inapaswa kuwa ya asili kwa haraka (iwe tu kwa sekunde chache ndogo).

Kutumia kuchimba na OpenDNS kama azimio:

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

111.222.333.444
 

Imenakiliwa kutoka: https://unix.stackexchange.com/a/81699/14497

Kupata IP ya nje bila kutegemea huduma za nje

  • Ikiwa unajua jina la interface ya mtandao wako

Andika yafuatayo katika terminal yako:

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

Hapo juu, kuchukua nafasi ya <interface_name> pamoja na jina la interface yako halisi, kwa mfano: eth0 , eth1 , pp0 , nk ...

Matumizi ya Mfano:

 $ LANG=c ifconfig ppp0 | grep "inet addr" | awk -F: '{print $2}' | awk '{print $1}'
111.222.333.444
 
  • Ikiwa haujui jina la interface ya mtandao wako

Andika yafuatayo kwenye terminal yako (hii inapata jina na anwani ya ip ya kila kigeuzi cha mtandao kwenye mfumo wako):

 $ 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 }'
 

Matumizi ya Mfano:

 $ 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
 

NB: Matokeo ni dalili na sio kweli.

Kwa hisani: https://www.if-not-true-then-false.com/2010/linux-get-ip-address/

HABARI

  1. LANG=c imeongezwa kwa ifconfig utumiaji wa msingi, ili kila wakati inatoa matokeo ya kiingereza, bila kujali mpangilio wa eneo.

388


2012-06-01

Upendao kila wakati umekuwa:

 curl ifconfig.me
 

rahisi, rahisi aina.

Utalazimika kusanikisha kwanza;)

Ikiwa ikiwaconfig.me iko chini jaribu icanhazip.com na au ipecho.net

 curl icanhazip.com
 

au

 curl ipecho.net
 

118


2012-06-01

icanhazip.com ni favorite.

 curl icanhazip.com
 

Unaweza kuomba IPv4 waziwazi:

 curl ipv4.icanhazip.com
 

Ikiwa huna curl unaweza kutumia wget badala:

 wget -qO- icanhazip.com
 

59


2012-06-01

Nimeona kila kitu kuwa cha kukasirisha na polepole, kwa hivyo niliandika yangu. Ni rahisi na ya haraka.

API yake iko kwenye http://api.ident.me/

Mifano:

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

48


2013-01-03

Unaweza kutumia ombi la DNS badala ya ombi la HTTP kujua IP yako ya umma:

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

Inatumia resolver1.opendns.com seva ya dns kutatua myip.opendns.com jina la mwenyeji wa kichawi kwa anwani yako ya ip.


43


2014-02-27

Amazon AWS

 curl http://checkip.amazonaws.com
 

Matokeo ya mfano:

 123.123.123.123
 

Ninapenda kwa sababu:

  • inarudi tu IP iliyowekwa wazi, hakuna kingine
  • ni kutoka kwa mtoaji anayejulikana ambayo ha uwezekano wa kwenda nje ya mkondo wakati wowote hivi karibuni

24



Ninatumia ni:

 wget -O - -q icanhazip.com
 

Ndio, unaweza kuwa na ip :-)


18


2012-01-16

Chapa katika hii haswa, bonyeza kama Enterilivyoonyeshwa:

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

Hili linawasilisha ombi la HTTP, ambalo litarudisha IP yako chini ya HTTP/1.1 200 OK reply

Matokeo ya mfano:

 $ 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
 

11


2013-07-02

Kwa hili, STUN ilianzishwa. Kama mteja unaweza kutuma ombi kwa seva ya STUN inayopatikana hadharani na iweze kurudisha anwani ya IP inayoona. Aina ya kiwango cha chini whatismyip.com kwani haitumii HTTP na hakuna seva za DNS zilizotengenezwa kwa busara lakini itifaki ya haraka ya STUN.

Kutumia stunclient

Ikiwa umeweka stunclient ( apt-get install stuntman-client kwenye debian / ubuntu) unaweza tu kufanya:

 $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 iko wapi anwani ya IP ya mashine yako kwenye wavu wa ndani na W.X.Y.Z ni seva za anwani ya IP kama tovuti zinaona kutoka nje (na ile unayotafuta). Kutumia sed unaweza kupunguza pato hapo juu kwa anwani ya IP tu:

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

Walakini, swali lako lilikuwa jinsi ya kuipata kwa kutumia laini ya amri, ambayo inaweza kutengwa kutumia mteja wa STUN. Kwa hivyo nashangaa ...

Kutumia bash

Ombi la STUN linaweza kutengenezwa kwa mikono, kutumwa kwa seva ya STUN ya nje kwa kutumia netcat na kusindika baada ya kutumiwa dd , hexdump na sed kama vile:

 $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/'
 

Echo inafafanua ombi la STUN ya binary (0x0001 inaonyesha Ombi la Kufunga) kuwa na urefu wa 8 (0x0008) na kuki 0xc00cee na vitu vingine vya pasted kutoka kwa waya. Ni ka nne tu zinazowakilisha IP ya nje ambazo huchukuliwa kutoka kwa jibu, kusafishwa na kuchapishwa.

Kufanya kazi, lakini haifai matumizi ya uzalishaji :-)

Seva nyingi za STUN zinapatikana kwani ni teknolojia ya msingi ya SIP na WebRTC. Kutumia moja kutoka kwa Mozilla inapaswa kuwa busara salama ya faragha lakini pia unaweza kutumia nyingine: Orodha ya seva ya STUN


10


2015-10-09

Nyingine ya haraka (inaweza kuwa ya haraka sana, kiasi)

 curl ipecho.net/plain
 

9


2013-12-31

Nina huduma ya kijinga kwa hii na telnet. Kitu kama hiki:

 telnet myip.gelma.net

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

Jisikie huru kuitumia.


7


2014-03-13

Unaweza kusoma mtandao kwa kutumia bash pekee, bila 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
 

5


2014-09-18

Kwa sisi tulio na ufikiaji wa kuingia kwa ruta zetu, kutumia script kuuliza router ni nini anwani yake ya 'WAN IP ni njia bora zaidi ya kuamua anwani ya IP ya nje. Kwa mfano maandishi ya python yafuatayo yanaboresha IP ya nje ya router yangu ya Medialink MWN-WAPR300N:

 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)
 

Kumbuka kuwa hii sio salama sana (kama ilivyo kwa sifa zilizo wazi na kuingia kwa waendeshaji wengi wa barabara), na kwa hakika sio portable (inahitaji kubadilishwa kwa kila router). Hata hivyo ni haraka sana na suluhisho linalofaa kabisa kwenye mtandao salama wa nyumbani.

Ili kuhariri maandishi kwa router nyingine, ninapendekeza kutumia nyongeza ya tamperdata kwenye Firefox kuamua ni ombi gani la HTTP kufanya.


2


2014-03-27

Hizi zitapata IPs za mitaa:

 ifconfig
 

au kwa pato fupi:

 ifconfig | grep inet
 

pia

 ip addr show
 

na labda:

 hostname -I
 

Hii inapaswa kupata IP ya nje

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

NB Ikiwa huna nia ya kusanikisha curl , hii pia:

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

2


2014-06-27

Routa nyingi za nyumbani zinaweza kuulizwa na UPnP:

 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
 

Kisha, grep anwani ya ip kutoka jibu.

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

2


2016-09-18

Ikiwa unatumia DD-WRT basi hii inanifanyia kazi:

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

au

 curl -s -u your_ddwrt_username:your_ddwrt_password http://192.168.1.1 | grep "ipinfo" | awk -v FS="(IP: |</span)" '{print $2}'
 
  • Ambapo 192.168.1.1 ni Anwani ya IP ya Gateway / Router LAN ya RD-WRT.

  • Sehemu ya - inamaanisha kuwa kimya (ie haionyeshi habari ya maendeleo ya curl).

  • O, ninapaswa kutaja kuwa ninatumia yaliyo hapo juu na "DD-WRT v24-sp2 (01/04/15) std" .

2


2017-04-14

Ikiwa umeweka lynx katika aina ya Ubuntu

 lynx bot.whatismyipaddress.com
 

1


2013-01-09

tumia ip !

 ip addr show
 

kisha utafute adapta inayofaa (sio lo , na kawaida eth0 ), na upate anwani ya ip karibu inet .


0


2016-08-15

Labda nimechelewa kidogo, lakini inxi inaweza kuifanya kwa urahisi rahisi.

Weka inxi

 sudo apt install inxi
 

Kisha kukimbia amri ifuatayo

 inxi -i
 

Mfano na habari yangu imefungwa kwa kutumia z chaguo la kunakili na kubandika kwenye tovuti kama hii:

 ~$ 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
 

Ambapo inasema <filter> ni wapi IP yako ya WAN, IPv4, anwani ya MAC nk itaonekana


0


2018-10-21

Toa tu traceroute ya wavuti yoyote au huduma ..

 sudo traceroute -I google.com
 

Line 2 daima inaonekana kuwa anwani yangu ya umma ya IP baada ya kupita lango la router yangu.

 [email protected] ~ $ 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**
 

Kwa hivyo, fanya amri ya bash.

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

Na mazao ...

 (199.21.149.1)
 

Sidhani kutegemea maandiko ya PHP na aina ni mazoezi mazuri.


-2


2015-07-24

Amri isiyokuwa na utegemezi isipokuwa 8.8.8.8 kuwa ni google DNS:

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

-2


2015-08-19