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?


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

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'))

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ć.


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.


@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


Doceniam twoją odpowiedź, ale komentarz Alexa Chamberlaina i odpowiedź Steve'a Robillarda już zawierają te informacje.
Zoot


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

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.


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


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.


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


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


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.


-1
curl ipinfo.io 

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


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.


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.


3
Zapewni to tylko zewnętrzny adres IP, a nie wewnętrzny adres IP.
Zoot
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.