How to get the host ip address in Python
Today, I will talk to you about how to get the host IP address in Python. Many people may not know much about it. In order to let everyone know more, Xiaobian summarized the following contents for everyone. I hope everyone can gain something according to this article.
import socket
import struct
import fcntl
import commands
def getLocalIP():
status,output=commands.getstatusoutput("hostname -i")
if status :
return '127.0.0.1'
else :
return output
def getip(ethname):
s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack('256s', ethname[:15]))[20:24])
if __name__=='__main__':
print "getip :" , getip('eth0')
print "getLocalIP :", getLocalIP()
Note that in this case I wrote eth0 , if it is a production environment to do the network card binding, then you need to use getip(bond0)
execution result
[yangyidba@rac3 10:31:12 ~]
$ python getip.py
getip : 10.10.15.12
getLocalIP : 10.10.15.12
There is also a shell implementation, you can use the following shell instead of hostname -i in Python implementation:
host `hostname --fqdn` 2>/dev/null | awk '{print $NF}'
10.10.15.12
ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr -d "addr:"
10.10.15.12
ifconfig|grep -v "127.0.0.1" | sed -n '/inet addr/s/^[^:]*:\([0-9.]\ {7,15\}\) .*/\ 1/p'
10.10.15.12
After reading the above, do you have any further understanding of how to get the host ip address in Python? If you still want to know more knowledge or related content, please pay attention to the industry information channel, thank you for your support.