Najłatwiejszy sposób na pokazanie mojego adresu IP?

62

Jaki jest najłatwiejszy sposób na uzyskanie i wyświetlenie adresu IP, z którego korzysta obecnie urządzenie po uruchomieniu?
Używam Raspbian i ifconfignie wydaje się być zainstalowany.

Czy są jakieś widżety wyświetlające te informacje w LXDE?

Zoot
źródło
4
Prawdopodobnie jest zainstalowany; musisz sudo ifconfig na Debianie.
Alex Chamberlain,
Teraz to sobie uświadamiam. Myślę, że rozpieszczają mnie wskazówki wiersza poleceń Ubuntu. Sprawdzę to po ponownym włączeniu zasilania.
Zoot,
To jest bash, a nie Ubuntu. Myślę, że ifconfig jest właśnie zainstalowany z różnymi uprawnieniami.
Alex Chamberlain
1
Tak, zapomniałem sudo. ifconfig jest instalowany domyślnie, ale pojawia się komunikat o błędzie „Nie znaleziono polecenia”, jeśli go nie sudo. Dzięki!
Zoot
My Raspbian pokazuje adres IP tuż przed monitem o zalogowanie się.
Thorbjørn Ravn Andersen

Odpowiedzi:

65

Rodzina narzędzi if, w tym ifconfig, jest przestarzała i zastępowana nowszymi poleceniami ip, dzięki czemu można użyć dowolnego z poniższych poleceń z wiersza poleceń, aby określić adres IP:

sudo ip addr show

lub

sudo hostname --ip-address

lub jeśli nadal chcesz używać ifconfig i nie jest on jeszcze zainstalowany

sudo apt-get install wireless-tools
sudo ifconfig -a
Steve Robillard
źródło
1
@jackweirdy, czyli nowsze narzędzia, które zastępują stare narzędzia if. Wypróbuj man ip, aby uzyskać dodatkowe informacje.
Steve Robillard
1
na zdrowie, nauczyłem się dziś czegoś nowego :)
jackweirdy
czy jest to polecenie „arp”, które pokaże ci coś w linii adresu IP?
Piotr Kula,
4
ip awystarczy, jeśli chcesz uzyskać adres IP :)
Der Hochstapler
3
Żadne z poleceń wyświetlania nie wymaga uprawnień sudo. Prawdopodobnie jest to pokazane z powodu efektu ubocznego ustawienia ścieżki na dołączenie / sbin. Możesz normalnie uruchomić /sbin/ifconfiglub /sbin/ipjak każdy użytkownik.
XTL,
12

Możesz również użyć tego małego skryptu python.

import socket

def get_local_ip_address(target):
  ipaddr = ''
  try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect((target, 8000))
    ipaddr = s.getsockname()[0]
    s.close()
  except:
    pass

  return ipaddr
print "Raspberry Pi - Local IP Address"
print(get_local_ip_address('10.0.1.1'))
print(get_local_ip_address('google.com'))
Bryan
źródło
9
Trochę przesada, nie sądzisz? Nie ma większego sensu zastępowanie istniejących poleceń Linuksa, które osiągają to samo.
Jivings
2
@Jivings Bit surowy - to odpowiedź, która działa! (Mówię bez testowania ...) Może to być na przykład podstawa widgetu na pulpicie.
Alex Chamberlain,
1
@Bryan Witamy w Stack Exchange i Raspberry Pi!
Alex Chamberlain,
1
@AlexChamberlain Przepraszamy Bryan. Nie
piłam
1
Można to nawet dodać do usługi wiadomości działającej po zalogowaniu, aby automatycznie wyświetlać adres IP obok wiadomości startx. Wtedy byłoby to automatyczne, bez konieczności pisania.
Steve Robillard
8

Jako alternatywę dla znalezienia adresu IP przypisanego do DHCP dodałem zarezerwowany adres IP na moim routerze / serwerze DHCP. Pasuje do adresu MAC Raspi i zawsze przypisuje ten sam adres IP - nawet po nowej instalacji systemu operacyjnego.

Ponieważ Wheezy ma teraz domyślnie włączone SSH, oznacza to, że mogę zalogować się do świeżo zainstalowanego Raspberry Pi bez konieczności podłączania klawiatury lub monitora.

Przepraszam, że nie odpowiedziałem bezpośrednio na pytanie, ale wydawało się, że jest wystarczająco blisko powiązane, by je zasugerować.

Greg Woods
źródło
Jeśli to pomaga ludziom znaleźć łatwe sposoby na określenie adresu IP, jestem na to gotowy.
Zoot
7

Możesz być w stanie sprawdzić status / logi DHCP na swoim serwerze DHCP. Zwłaszcza jeśli jest w sieci domowej. Na wszystkich routerach, które posiadałem, było to dość łatwe do znalezienia.

Jest to przydatne, jeśli pracujesz bez głowy i chcesz tylko znać adres, na który chcesz ssh.

John La Rooy
źródło
@gnibbler +1 za rozwiązanie problemu dla osób bezgłowych. Należy zauważyć, że określenie, które urządzenie jest Pi, może być trudne, ponieważ nie zawsze identyfikuje się w sieci, a więc może pojawić się bez nazwy na liście dołączonych urządzeń. Wątek raspberrypi.org/phpBB3/viewtopic.php?f=36&t=6998 zawiera więcej informacji na temat problemu i rozwiązania
Steve Robillard
@SteveRobillard, kopalnia nie identyfikuje się, ale również może pomóc komuś, jeśli widzą adres MAC zaczynając jak b8:27:eb:xx:xx:xx, to chyba RPI :)
John La Rooy
5

Co dla mnie zadziałało:

sudo ifconfig

skoro ifconfigbył osbin/ifconfig

Matthieu Riegler
źródło
Doceniam twoją odpowiedź, ale komentarz Alexa Chamberlaina i odpowiedź Steve'a Robillarda już zawierają te informacje.
Zoot
5

Jeśli chcesz zobaczyć swój zewnętrzny adres IP, użyj go w wierszu poleceń

curl http://ipecho.net/plain ; Echo;

Możesz stworzyć funkcję, aby to ułatwić.

Edytuj plik .bashrc i dodaj następującą funkcję na końcu pliku.

Funkcja wyświetlania zewnętrznego adresu IP

Funkcja wyświetlania zewnętrznego adresu IP

Wywołanie funkcji z cli

wprowadź opis zdjęcia tutaj

W tym linku możesz znaleźć bardziej interesujące sposoby uzyskania adresu IP

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

andreskwan
źródło
5
$ host raspberrypi
raspberrypi has address 192.168.1.20

$ host raspberrypi | grep ‘address’ | cut -d’ ‘ -f4
192.168.1.20

$ nslookup 192.168.1.20
Server:  192.168.1.1
Address:    192.168.1.1#53
20.1.168.192.in-addr.arpa   name = raspberrypi.

$ nslookup 192.168.1.20 | grep ‘=’ | cut -d’ ‘ -f3
raspberrypi
devpsp
źródło
2

Shea Silverman i Jacob Bates stworzyli niedawno narzędzie o nazwie PIP, które pozwala uzyskać adres IP twojego malinowego pi nawet bez dołączania go do ekranu, ponieważ instaluje skrypt wysyłający twój adres IP na serwer, który możesz odwiedzić za pomocą główny komputer. To może nie być najlepsza opcja w każdej sytuacji, ale jest to bardzo sprytny hack.

Zoot
źródło
2

Skrypt potomny zwracający adres IP, działa z monitu:

lista adresów IP | grep inet | grep -v 127.0.0 | cut -d "" -f 6 | cut -d "/" -f 1

mutek gość
źródło
1

Sugeruję, abyś używał Bonjour zamiast szukać adresu IP. Pozwól, aby zostało przypisane przez DHCP i dopóki twój komputer jest w tej samej sieci, możesz uzyskać do niego dostęp według nazwy.

Na przykład .. raspberrypi.local

Po skonfigurowaniu możesz uruchomić całkowicie bezgłowy, połączyć się z Pi za pomocą SSH lub VNC itp.

Oto artykuł wyjaśniający, jak skonfigurować Bonjour. http://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18207

Pamiętaj, że w przypadku komputera z systemem Windows musisz zainstalować sterownik Zastosuj usługi drukarki Bonjour, drobiazg ...

W przypadku komputerów Mac i Ubuntu Bonjour już tam jest.

dfowler7437
źródło
0

Aby dodać tutaj dodatek, powodem, dla którego możesz nie mieć ifconfig, jest to, że twój system prawdopodobnie używa pakietu iproute2. iproute2 zawiera zaktualizowane odpowiedniki starych pakietów ifconfig i tras.

Mówię o tym, ponieważ jeśli zaczniesz wypróbowywać polecenia, których używasz w ifconfig lub route, twoim pierwszym instynktem może być zainstalowanie tych starych pakietów zamiast używania nowszego odpowiednika. Na przykład, jeśli chcesz użyć netstat i zdasz sobie sprawę, że go brakuje, po prostu wyszukaj „iproute2 netstat równo” i powinieneś znaleźć polecenie „ss”. Więcej informacji i dokumentacji można znaleźć w artykule Linux Foundation na ten temat: http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

codey
źródło
1
Doceniam twoją odpowiedź, ale zainstalowałem ifconfig. Właśnie zapomniałem sudo przed poleceniem. Sprawdź komentarze poniżej odpowiedzi.
Zoot
1
Doh! Używam tylko Arch i przez jakiś czas nie używał ifconfig.
codey
Nie ma problemu. To także rzuciło mnie na pętlę.
Zoot
Arugh, nie musisz sudo dla ifconfig, musisz tylko wywołać całą ścieżkę, ponieważ obecnie nie ma jej w $ PATH. whereis ifconfig poda ci ścieżkę w razie potrzeby; możesz uruchomić go stamtąd. sudo nie jest odpowiedzią!
djsmiley2k - CoW
0

Widziałem różne odpowiedzi. niektóre znałem, a niektóre nie wiedziałem. Jest też taki, z którego zawsze korzystam, którego jeszcze nie wymieniono. Jeśli tak, a ja tęskniłem, to przepraszam.

nazwa hosta sudo -I

Pismurf
źródło
0

Jedna wkładka z ifconfig i sed:

sudo ifconfig wlan0 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'

Zamień wlan0 na żądany interfejs.

bleater
źródło
-1
curl ipinfo.io 

działa dla mnie zarówno na Ubuntu, jak i na Raspbian

użytkownik522843
źródło
Aby wyjaśnić te, które mogą nie być świadome: ta konkretna odpowiedź da zewnętrzny (internetowy) adres IP routera LAN lub zapory sieciowej, na której działa Raspberry Pi. Nie poda konkretnego adresu IP LAN samego Pi. Może to być przydatne do rozwiązywania problemów z Internetem. Aby uzyskać lokalny adres IP sieci LAN zgodnie z zadanym pytaniem, poszukaj innych odpowiedzi tutaj w tym pytaniu.
MrChips
-2

Wierzę, że arp -ana Windowsie lub Linuksie byłoby najprostsze, gdy twoje pi jest podłączone do sieci.

użytkownik44213
źródło
2
Wydaje mi się, że daje to adresy innych systemów, a nie twojego. Uwaga: man arpobecnie zaczyna się „Ten program jest przestarzały”.
Złotowłosa
-3

Nie wiem o LXDE. Aby poznać swój adres IP urządzenia, odwiedź witrynę Ip-Details.com . Tutaj podadzą również lokalizację IP, adres ISP, kraj itp.

użytkownik46126
źródło
3
Zapewni to tylko zewnętrzny adres IP, a nie wewnętrzny adres IP.
Zoot