显示我的IP地址的最简单方法?


62

启动后,获取和显示设备当前正在使用的IP地址的最简单方法是什么?
我正在使用Raspbian,ifconfig但似乎未安装。

是否有任何小部件在LXDE中显示此信息?


4
它可能已安装;您必须在Debian上sudo ifconfig。
亚历克斯·张伯伦

我现在意识到了。我想我被Ubuntu的命令行提示宠坏了。备份电源后,我会检查一下。
Zoot 2012年

那是一回事,而不是Ubuntu的事。我认为ifconfig只是安装了不同的权限。
亚历克斯·张伯伦

1
是的,我忘记了须藤。ifconfig是默认安装的,但如果不对它进行sudo,则会出现命令找不到错误。谢谢!
Zoot 2012年

我的Raspbian在登录提示前显示IP地址。
托尔比约恩Ravn的安德森

Answers:


65

不推荐使用if系列工具(包括ifconfig),并使用较新的ip命令替换它们,因此您可以从命令行使用以下任一命令来确定IP地址:

sudo ip addr show

要么

sudo hostname --ip-address

或者如果您仍想使用ifconfig,并且尚未安装

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

1
@jackweirdy是更新的工具,它将替换旧的if工具。尝试使用man ip来获取一些其他详细信息。
史蒂夫·罗比拉德

1
为此打气,今天学到了一些新东西:)
jackweirdy 2012年

这是“ arp”命令,它将向您显示IP地址行中的内容吗?
Piotr Kula 2012年

4
ip a如果您想获取IP地址就足够了:)
Der Hochstapler

3
实际上,所有显示命令都不需要sudo权限。之所以显示它,是因为将路径设置为包含/ sbin会有副作用。您可以正常运行/sbin/ifconfig/sbin/ip以任何用户身份运行。
XTL 2012年

12

您也可以使用这个小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
你觉得有点矫kill过正吗?替换现有的实现相同功能的Linux命令没有多大意义。
Jivings 2012年

2
@Jivings有点刺耳-这是一个答案,行得通!(我说未经测试...)例如,它可能是桌面上小部件的基础。
亚历克斯·张伯伦

1
@Bryan欢迎使用Stack Exchange和Raspberry Pi!
亚历克斯·张伯伦

1
@AlexChamberlain对不起,布莱恩。今天早上还没有喝咖啡:)
Jivings

1
甚至可以将其添加到登录后运行的消息服务中,以自动在startx消息旁边显示IP地址。然后它将是自动的,无需键入。
史蒂夫·罗比拉德

8

作为查找DHCP分配的IP地址的替代方法,我在路由器/ DHCP服务器中添加了保留的IP地址。它与Raspi的MAC地址匹配,并且始终分配相同的IP地址-即使在全新安装OS之后也是如此。

Wheezy现在默认情况下启用了SSH,这意味着我可以登录到新安装的Raspberry Pi,而无需连接键盘或显示器。

很抱歉没有直接回答问题,但似乎很相关,可以提出建议。


如果它可以帮助人们找到确定IP的简便方法,我全力以赴。
Zoot 2012年

7

您也许可以检查DHCP服务器上的DHCP状态/日志。特别是在您的家庭网络上。在我拥有的所有路由器上,这很容易找到。

如果您无头运行并且仅想知道要发送到的地址,这将很有帮助。


@gnibbler +1为那些无头的人解决了这个问题。值得一提的是,确定Pi是哪个设备可能很棘手,因为它并不总是通过网络来标识自己,因此,可能在没有名称的情况下出现在附加的设备列表中。这个线程raspberrypi.org/phpBB3/viewtopic.php?f=36&t=6998 有更多关于问题和解决方案的信息
Steve Robillard

@SteveRobillard,矿山识别本身,但它也可以帮助别人,如果他们看到一个MAC地址开始喜欢b8:27:eb:xx:xx:xx,它可能是一个RPI :)
约翰·拉ROOY

5

对我有用的是:

sudo ifconfig

因为ifconfigsbin/ifconfig


在我感谢您的答复的同时,亚历克斯·张伯伦的评论和史蒂夫·罗比拉德的答复已经包含此信息。
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和Jacob Bates最近创建了一个名为PIP的工具,该工具可让您获取树莓派的IP,甚至无需将其附加到屏幕上,因为它安装了将IP地址发送到服务器的脚本,您可以通过该服务器访问主电脑。在每种情况下,它可能都不是最佳选择,但这是一个非常聪明的技巧。


2

宝贝脚本返回IP地址,在提示符下起作用:

ip地址列表| grep inet | grep -v 127.0.0 | 切-d“” -f 6 | 切-d“ /” -f 1


1

我建议您使用Bonjour而不是查找IP地址。通过DHCP进行分配,只要您的PC在同一网络上,您就可以按名称访问它。

例如.. raspberrypi.local

一旦设置完成,您就可以完全无头运行,使用SSH或VNC等连接到Pi。

这是一篇文章,说明如何设置Bonjour。 http://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18207

请注意,对于Windows计算机,您将需要安装Apply Bonjour打印机服务驱动程序,这是一件很小的事情...

对于Mac和Ubuntu,Bonjour已经存在。


0

仅在此处添加一些补充,可能没有ifconfig的原因是因为您的系统可能正在使用iproute2套件。iproute2包括旧的ifconfig和路由套件的更新等效项。

我之所以提出这一点,是因为如果您开始尝试使用ifconfig或route所习惯的命令,那么您的第一个直觉可能是安装那些旧软件包,而不仅仅是使用更新的软件包。例如,如果您需要使用netstat并意识到它不存在,只需搜索“ iproute2 netstat等效项”,然后应该找到“ ss”命令。有关更多的阅读和文档,请参考Linux Foundation上的文章:http : //www.linuxfoundation.org/collaborate/workgroups/networking/iproute2


1
感谢您的回答,但确实安装了ifconfig。我只是在命令之前忘记了sudo。查看答案下方的评论。
Zoot

1
h!我只使用Arch,而且一段时间未使用过ifconfig。
2013年

没问题。它也让我陷入困境。
Zoot

Arugh,您不需要为ifconfig设置sudo,您只需要调用整个路径,因为它当前不在$ PATH中。ifconfig将在需要时为您提供路径;然后您可以从那里运行它。sudo不是答案!
djsmiley2k-CoW

0

我看到了各种各样的答案。有些我知道,有些我不知道。我还经常使用的一个尚未被列出的。如果有,但我错过了,抱歉。

sudo主机名-I


0

一种带有ifconfig和sed的衬里:

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

将wlan0替换为所需的接口。


-1
curl ipinfo.io 

在Ubuntu和Raspbian上都对我有效


只是为那些可能不知道的人澄清一下:这个特定的答案将提供Raspberry Pi所在的LAN路由器或防火墙的外部(面向Internet)IP地址。它不会提供Pi本身的特定LAN IP地址。这对于Internet故障排除可能很有用。要获取本地LAN IP地址作为问题的答案,请在此问题中查找其他答案。
MrChips

-2

我相信arp -a一旦您的pi连接到网络,在Windows或Linux上将是最简单的。


2
在我看来,这给出了其他系统的地址,而不是您自己的。另请注意,man arp当前开始“此程序已过时”。
goldilocks

-3

我不了解LXDE。要了解您设备的IP地址,请访问Ip-Details.com网站。在这里,他们还将提供IP位置,ISP地址,国家/地区等。


3
这只会提供一个外部IP,而不是您的内部IP。
Zoot
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.