Cách dễ nhất để hiển thị địa chỉ IP của tôi?


62

Sau khi tôi khởi động xong, cách dễ nhất để lấy và hiển thị địa chỉ IP mà thiết bị hiện đang sử dụng là gì?
Tôi đang sử dụng Raspbian và ifconfigdường như không được cài đặt.

Có vật dụng nào hiển thị thông tin này trong LXDE không?


4
Nó có thể được cài đặt; bạn phải sudo ifconfig trên Debian.
Alex Chamberlain

Tôi nhận ra rằng bây giờ. Tôi nghĩ rằng tôi đã bị làm hỏng bởi các gợi ý dòng lệnh của Ubuntu. Tôi sẽ kiểm tra xem khi tôi cấp nguồn lại.
Zoot

Đó là một thứ bash, chứ không phải là một thứ Ubuntu. Tôi nghĩ ifconfig chỉ được cài đặt với các quyền khác nhau.
Alex Chamberlain

1
Đúng, tôi quên sudo. ifconfig được cài đặt theo mặc định, nhưng nó xuất hiện một lệnh không tìm thấy lỗi nếu bạn không sudo nó. Cảm ơn!
Zoot

Raspbian của tôi hiển thị địa chỉ IP ngay trước dấu nhắc đăng nhập.
Thorbjørn Ravn Andersen

Câu trả lời:


65

Nhóm công cụ if bao gồm ifconfig đang bị phản đối và được thay thế bằng các lệnh ip mới hơn để bạn có thể sử dụng bất kỳ một trong các cách sau từ dòng lệnh để xác định địa chỉ IP của mình:

sudo ip addr show

hoặc là

sudo hostname --ip-address

hoặc nếu bạn vẫn muốn sử dụng ifconfig và nó chưa được cài đặt

sudo apt-get install wireless-tools
sudo ifconfig -a

1
@jackweirdy đó là các công cụ mới hơn đang thay thế công cụ if cũ. Hãy thử man ip để biết thêm chi tiết.
Steve Robillard

1
cổ vũ cho điều đó, đã học được điều gì đó mới hôm nay :)
jackweirdy

Có một lệnh "arp" sẽ cho bạn thấy một cái gì đó trong dòng địa chỉ IP?
Piotr Kula

4
ip alà đủ nếu bạn muốn lấy địa chỉ IP :)
Der Hochstapler

3
Không có lệnh hiển thị nào thực sự cần quyền sudo. Nó có thể được hiển thị do tác dụng phụ của việc đặt đường dẫn của bạn thành / sbin. Bạn có thể chạy /sbin/ifconfighoặc /sbin/ipnhư bất kỳ người dùng bình thường.
XtL

12

Bạn có thể sử dụng kịch bản python nhỏ này là tốt.

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
Một chút quá mức bạn không nghĩ? Không có nhiều điểm thay thế các lệnh Linux hiện có đạt được như vậy.
Jivings

2
@Jivings Bit khắc nghiệt - đó là một câu trả lời, hoạt động! (Tôi nói mà không cần kiểm tra ...) Nó có thể là cơ sở của một widget trên máy tính để bàn chẳng hạn.
Alex Chamberlain

1
@Bryan Chào mừng bạn đến với Stack Exchange và Raspberry Pi!
Alex Chamberlain

1
@AlexChamberlain Xin lỗi Bryan. Chưa có cà phê của tôi sáng nay :)
Jivings

1
Điều này thậm chí có thể được thêm vào dịch vụ tin nhắn chạy sau khi đăng nhập để tự động hiển thị địa chỉ IP cùng với thông điệp startx. Sau đó, nó sẽ được tự động không cần gõ.
Steve Robillard

8

Thay thế cho việc tìm địa chỉ IP được gán DHCP, tôi đã thêm một địa chỉ IP dành riêng trong máy chủ bộ định tuyến / DHCP của mình. Nó phù hợp với địa chỉ MAC của Raspi và luôn gán cùng một địa chỉ IP - ngay cả sau khi cài đặt hệ điều hành mới.

Với Wheezy hiện đã bật SSH theo mặc định, điều đó có nghĩa là tôi có thể đăng nhập vào Raspberry Pi mới cài đặt mà không cần phải kết nối bàn phím hoặc màn hình.

Xin lỗi vì đã không trả lời trực tiếp câu hỏi, nhưng dường như đủ liên quan chặt chẽ để đề xuất.


Nếu nó giúp mọi người tìm ra những cách dễ dàng để xác định IP, tôi sẽ làm tất cả.
Zoot

7

Bạn có thể kiểm tra trạng thái / nhật ký DHCP trên máy chủ DHCP của bạn. Đặc biệt nếu nó trên mạng gia đình của bạn. Trên tất cả các bộ định tuyến tôi đã sở hữu, điều này khá dễ tìm.

Điều này rất hữu ích nếu bạn đang chạy không đầu và chỉ muốn biết địa chỉ để ssh đến.


@gnibbler +1 để giải quyết vấn đề cho những người chạy không đầu. Người ta cần lưu ý, việc xác định thiết bị nào là Pi có thể khó khăn vì không phải lúc nào nó cũng tự nhận dạng qua mạng và do đó, có thể hiển thị mà không có tên trong danh sách thiết bị đính kèm. Chủ đề này raspberrypi.org/phpBB3/viewtopic.php?f=36&t=6998 có nhiều hơn về vấn đề và giải pháp
Steve Robillard

@SteveRobillard, mỏ không xác định chính nó, nhưng nó cũng có thể giúp ai đó nếu họ thấy một địa chỉ MAC bắt đầu như b8:27:eb:xx:xx:xx, nó có thể là một RPi :)
John La Rooy

5

Điều gì làm việc cho tôi:

sudo ifconfig

kể từ ifconfiglúcsbin/ifconfig


Trong khi tôi đánh giá cao phản hồi của bạn, bình luận của Alex Chamberlain và phản hồi của Steve Robillard đã chứa thông tin này.
Zoot

5

Nếu bạn muốn xem địa chỉ IP bên ngoài của bạn, hãy sử dụng địa chỉ này trên dòng lệnh của bạn

cuộn tròn http://ipecho.net/plain ; tiếng vang;

Bạn có thể tạo một chức năng để làm cho nó dễ dàng hơn.

Chỉnh sửa .bashrc của bạn và thêm chức năng sau vào cuối tệp.

Chức năng hiển thị địa chỉ IP bên ngoài

Chức năng hiển thị địa chỉ IP bên ngoài

Gọi chức năng của bạn từ cli

nhập mô tả hình ảnh ở đây

Bạn có thể tìm thấy nhiều cách thú vị hơn để có được địa chỉ IP của mình trong liên kết này

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


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 và Jacob Bates gần đây đã tạo ra một công cụ có tên là PIP cho phép bạn lấy IP của raspberry pi mà không cần gắn nó vào màn hình, vì nó cài đặt một tập lệnh gửi địa chỉ IP của bạn đến máy chủ mà bạn có thể truy cập bằng PC chính. Nó có thể không phải là lựa chọn tốt nhất trong mọi tình huống, nhưng nó là một cách hack rất thông minh.


2

Kịch bản con trả về địa chỉ IP, hoạt động từ dấu nhắc:

danh sách địa chỉ IP | grep inet | grep -v 127.0.0 | cắt -d "" -f 6 | cắt -d "/" -f 1


1

Tôi khuyên bạn nên sử dụng Bonjour thay vì phải tìm địa chỉ IP. Hãy để nó được gán qua DHCP và miễn là PC của bạn nằm trên cùng một mạng, bạn có thể truy cập nó theo tên.

Ví dụ .. raspberrypi.local

Khi cài đặt xong, bạn có thể chạy hoàn toàn không đầu, kết nối với Pi bằng SSH hoặc VNC, v.v.

Dưới đây là một bài viết giải thích cách thiết lập cho Bonjour. http://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18207

Lưu ý rằng đối với máy Windows, bạn sẽ cần cài đặt Trình điều khiển dịch vụ máy in Bonjour, một điều nhỏ ...

Đối với Mac và Ubuntu, Bonjour đã có sẵn.


0

Chỉ cần thêm một số bổ sung ở đây, lý do bạn có thể không có ifconfig là vì hệ thống của bạn có thể đang sử dụng bộ iproute2 thay thế. iproute2 bao gồm các tương đương được cập nhật của bộ ifconfig và bộ tuyến đường cũ.

Tôi sẽ đưa ra điều này bởi vì nếu bạn bắt đầu thử các lệnh bạn đã quen với ifconfig hoặc tuyến đường, bản năng đầu tiên của bạn có thể là cài đặt các gói cũ đó thay vì chỉ sử dụng tương đương mới hơn. Chẳng hạn, nếu bạn cần sử dụng netstat và nhận ra nó bị thiếu, chỉ cần thực hiện tìm kiếm "iproute2 netstat tương đương" và bạn sẽ tìm thấy lệnh "ss". Để đọc thêm và tài liệu, hãy tham khảo bài viết của Linux Foundation về nó: http://www.linuxfoundation.org/collabISE/workgroups/networking/iproute2


1
Tôi đánh giá cao câu trả lời của bạn, nhưng tôi đã cài đặt ifconfig. Tôi chỉ quên sudo trước lệnh. Kiểm tra các ý kiến ​​dưới câu trả lời.
Zoot

1
Đừng! Tôi chỉ sử dụng Arch và nó đã không sử dụng ifconfig trong một thời gian.

Không vấn đề gì. Nó cũng ném tôi cho một vòng lặp.
Zoot

Arugh, bạn không cần phải sudo cho ifconfig, bạn chỉ cần gọi toàn bộ đường dẫn vì hiện tại nó không có trong $ PATH của bạn. ifis ifconfig sẽ cung cấp cho bạn đường dẫn nếu được yêu cầu; sau đó bạn có thể chạy nó từ đó. sudo không phải là câu trả lời!.
djsmiley2k - CoW

0

Tôi thấy một loạt các câu trả lời. một số tôi biết và một số tôi không biết. Ngoài ra còn có một cái tôi luôn sử dụng chưa được liệt kê. Nếu nó có và tôi đã bỏ lỡ nó rất tiếc.

tên máy chủ sudo -I


0

Một lớp lót với ifconfig và sed:

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

Thay wlan0 bằng giao diện mong muốn.


-1
curl ipinfo.io 

hoạt động với tôi trên cả Ubuntu và Raspbian


Chỉ cần làm rõ cho những người có thể không biết: Câu trả lời cụ thể này sẽ cung cấp địa chỉ IP bên ngoài (đối diện internet) của bộ định tuyến LAN hoặc tường lửa mà Raspberry Pi đang bật. Nó sẽ không cung cấp địa chỉ IP LAN cụ thể của chính Pi. Điều này có thể hữu ích cho việc khắc phục sự cố internet. Để có được địa chỉ IP LAN cục bộ như câu hỏi được yêu cầu, hãy tìm đến các câu trả lời khác ở đây trong câu hỏi này.
MrChips

-2

Tôi tin rằng arp -atrên cả hai cửa sổ hoặc linux sẽ là đơn giản nhất khi pi của bạn được kết nối với mạng.


2
Dường như với tôi điều này cung cấp địa chỉ của các hệ thống khác, không phải của riêng bạn. Cũng lưu ý man arphiện đang bắt đầu "Chương trình này đã lỗi thời."
goldilocks

-3

Tôi không biết về LXDE. Để biết địa chỉ IP của thiết bị của bạn, hãy truy cập trang web Ip-Details.com . Tại đây họ cũng sẽ cung cấp vị trí IP, địa chỉ ISP, quốc gia, v.v ...


3
Điều này sẽ chỉ cung cấp một IP bên ngoài, không phải IP nội bộ của bạn.
Zoot
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.