我不时地想要启动Django开发服务器,让我的网络上的其他机器可以看到它,如下所述:
http://docs.djangoproject.com/en/dev/ref/django-admin/#runserver
我的机器的IP地址往往会一次又一次地改变,所以我想要一个小的别名或用我的机器的当前IP地址吐出manage.py命令的东西,可能是这样的:
python manage.py runserver $(COMMAND TO FIND MY MACHINE’S IP ADDRESS GOES HERE):8000
答案 0 :(得分:51)
ifconfig en0 | grep inet | grep -v inet6
预计上述产出将采用以下形式:
inet 192.168.111.1 netmask 0xffffff00 broadcast 192.168.111.255
添加一个awk语句来打印第二列以避免使用cut(awk是一个非常标准的unix工具):
ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'
我在以下网站上使用以下内容获取当前IP,其中IP的前几个数字始终相同(用您自己的数字替换192.168.111):
ifconfig | grep 192.168.111 | awk '{print $2}'
要获取另一台知道其名称的计算机的ip,请尝试(将hostname和192.168.111替换为您自己的值):
ping -c 1 hostname | grep 192.168.11 | grep 'bytes from' | awk '{print $4}' | sed 's/://g'
答案 1 :(得分:15)
您可能已经知道,但正在运行
python manage.py runserver 0.0.0.0:8000
让您的机器对网络上的每个人都可见。
您是否需要指定IP?
答案 2 :(得分:7)
这应该和我已经看过的其他命令一样好用:
ifconfig eth0 | grep inet | awk '{print $2}' | cut -d':' -f2
I̶̶t̶h̶i̶n̶k̶̶y̶o̶u̶̶c̶a̶n̶̶a̶l̶s̶o̶̶w̶r̶i̶t̶e̶:̶
̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶̶
答案 3 :(得分:5)
最好的解决方案是:
ifconfig | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p'
答案 4 :(得分:4)
人们正在使用字符计数来从ip地址行中提取正确的列,但是使用空格作为分隔符会使其更加可扩展到不同长度的ip地址......
ifconfig en1 | grep inet | grep -v inet6 | cut -d" " -f2
答案 5 :(得分:4)
这是一种快速而肮脏的方式,可在OSX下运行
/sbin/ifconfig | grep 'inet ' | grep -v '127.0.0.1' | head -n1 | awk '{print $2}'
基本上获取所有具有IPV4地址的接口,跳过localhost然后获取第一个接口。
另外,使用ifconfig的路径。从ex开始使用时,我看到很多shell脚本制动器。 cron因为PATH失败。
答案 6 :(得分:3)
ifconfig
可能就是你所追求的。您需要通过grep
运行它来过滤掉一些噪音。
答案 7 :(得分:3)
以下命令在RHEL 6.3上完全适用于我:
ifconfig | grep -v '127.0.0.1' | sed -n 's/.*inet addr:\([0-9.]\+\)\s.*/\1/p'
答案 8 :(得分:3)
在Mac OS X 10.11.6 El Capitan(可能是旧版本)上,您可以使用
打印您的IPipconfig getifaddr <device>
其中<device>
为en0
,en1
等
答案 9 :(得分:2)
这可能不如其他一些解决方案那么优雅,但它适用于Linux系统,看起来比正则表达式更令人欣慰:
ifconfig eth0 | grep 'inet addr:' | awk '{print $2}' | awk -F ':' '{print $2}'
答案 10 :(得分:1)
试试这个(如果你是Arch用户)
resolveip -s $HOSTNAME
替代
要获取IPv4地址,您可以使用:
host $(uname -n) | grep "address" | grep -v "IPv6" | head -n 1 | awk '{print $4}'
获得IPv6:
host $(uname -n) | grep "IPv6 address" | head -n 1 | awk '{print $5}'
如果您愿意,可以用$(主机名)替换$(uname -n)。
答案 11 :(得分:0)
这是找到当前IP地址的解决方案:
route -n get default|grep interface|awk ‘{ print $2 }’|xargs ipconfig getifaddr
仅在Mac上测试。
答案 12 :(得分:0)
这将检查您的默认界面,并使用它来检索您的主IP。 当你有许多接口和大量的虚拟IP地址时很有用:
netstat -rn | gawk '/UG/ {print $NF}' | xargs ifconfig | gawk 'match($0,/inet addr:(.*) B/,a) {print a[1]}'
答案 13 :(得分:0)
回顾一下:如果您想要copy/paste
命令行并获取网络IP地址,那么这就是适用于Mac(在WiFi上)的功能:
echo $(ifconfig en0 | grep inet | grep -v inet6 | cut -d" " -f2)
这里将它分配给bash脚本变量:
LOCAL_IP=$(ifconfig en0 | grep inet | grep -v inet6 | cut -d" " -f2)
的答案
答案 14 :(得分:0)
简单命令以使用默认界面对IP地址进行细化。
ip route | grep src | awk -F 'src' '{print $NF; exit}' | awk '{print $1}'
在所有Unix操作系统上测试