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

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

评论

它可能已安装;您必须在Debian上sudo ifconfig。

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

那是一回事,而不是Ubuntu的事。我认为ifconfig只是以不同的权限安装的。

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

我的Raspbian在登录提示之前显示IP地址。

#1 楼

不推荐使用if系列工具(包括ifconfig),并使用较新的ip命令替换它们,因此您可以从命令行使用以下任一命令来确定IP地址:
ip addr show
hostname --ip-address
,或者如果您仍要使用ifconfig,并且尚未安装它,
sudo apt-get install wireless-tools
ifconfig -a


评论


@jackweirdy是更新的工具,它将替换旧的if工具。请尝试使用man ip来获取一些其他详细信息。

–史蒂夫·罗比拉德(Steve Robillard)
2012年8月2日在16:17

为此加油,今天学到了一些新东西:)

– jackweirdy
2012年8月2日在16:29



是否有一个“ arp”命令会向您显示IP地址行中的内容?

– Piotr Kula
2012年8月2日在16:31

如果您想获取IP地址,则ip a就足够了:)

–霍赫斯塔普勒(Der Hochstapler)
2012年8月3日15:58

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

– XTL
2012年11月13日在8:16



#2 楼

您也可以使用这个小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'))


评论


你觉得有点矫kill过正吗?替换现有的实现相同功能的Linux命令没有多大意义。

–活动
2012年8月3日在7:07

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

–亚历山大·张伯伦
2012年8月3日在7:23

@Bryan欢迎使用Stack Exchange和Raspberry Pi!

–亚历山大·张伯伦
2012年8月3日在7:24

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

–活动
2012年8月3日在7:41

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

–史蒂夫·罗比拉德(Steve Robillard)
2012年8月3日,11:01

#3 楼

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

道歉,不能直接回答问题,但似乎很相关,可以提出建议。

评论


如果它可以帮助人们找到确定IP的简便方法,那么我就是这样。

–动物园
2012年8月7日在16:52

#4 楼

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

评论


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

–史蒂夫·罗比拉德(Steve Robillard)
2012年8月3日,11:07

@SteveRobillard,我确实可以识别自己,但是如果某人看到一个以b8:27:eb:xx:xx:xx:xx开头的MAC地址,也可能会有所帮助,它很可能是RPi :)

– John La Rooy
2012年8月3日,11:14

#5 楼

什么对我有用:

sudo ifconfig


因为ifconfigsbin/ifconfig

评论


在感谢您的答复的同时,亚历克斯·张伯伦的评论和史蒂夫·罗比拉德的答复已经包含此信息。

–动物园
13年7月9日在12:54



#6 楼

如果要查看外部IP地址,请在命令行上使用此地址。


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


您可以创建一个函数来简化它。

编辑.bashrc并在文件末尾添加以下函数。

显示外部IP地址的功能



从cli调用函数



您可以在此链接中找到更多有趣的方式来获取IP地址

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

#7 楼

$ 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


#8 楼

Shea Silverman和Jacob Bates最近创建了一个名为PIP的工具,该工具可让您获取树莓派的IP,甚至无需将其附加到屏幕上,因为它安装了将IP地址发送到服务器的脚本,您可以通过它访问主电脑。在每种情况下,它可能都不是最好的选择,但这是一个非常聪明的技巧。

#9 楼

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

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

#10 楼

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

设置后,您可以完全无头运行,可以通过SSH或VNC等连接到Pi。 org / forums / viewtopic.php?f = 66&t = 18207

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

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

#11 楼

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

sudo主机名-I

#12 楼

ip aip address的快捷方式

因此:
ip a

就足够了

如果所有的人都不需要使用sudo感兴趣的是查看IP地址。

有关更多信息,请运行以下命令来访问ip实用程序的手册页:
man ip

#13 楼

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

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

评论


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

–动物园
13年4月16日在18:20

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

–考克斯利
13年4月18日在3:02

没问题。这也让我感到困惑。

–动物园
13年4月19日在20:00

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

–djsmiley2kStaysInside
2015年4月24日在7:16



#14 楼

一个带有ifconfig和sed的衬板:

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


用所需的接口替换wlan0。

#15 楼

curl ipinfo.io 


在Ubuntu和Raspbian上均可为我工作

评论


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

– MrChips
18年2月4日在16:16

#16 楼

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

评论


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

– goldilocks♦
16年4月1日在14:31

#17 楼

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

评论


这只会提供一个外部IP,而不是您的内部IP。

–动物园
13年7月9日在12:54