python根据主机名获取主机的IP地址

「爱情、让人受尽委屈。」 2022-11-07 13:30 310阅读 0赞

比如我的hosts名字

  1. [root@controller ~]# cat /etc/hosts
  2. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  3. ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
  4. 99.0.85.37 controller
  5. 99.0.85.38 compute1
  6. 99.0.85.39 compute2
  7. 10::10:1 test1

1 需求

在python程序中获取compute1的IP地址

2 实现

主要是利用python自带的socket模块

  1. >>> import socket
  2. >>> socket.gethostbyname('compute1')
  3. '99.0.85.38'

注意

socket.gethostbyname 方式只适用于获取IPv4的地址

当需要获取IPv6的地址时,实现方法如下

  1. >>> socket.getaddrinfo('compute1',None)
  2. [(2, 1, 6, '', ('99.0.85.38', 0)), (2, 2, 17, '', ('99.0.85.38', 0)), (2, 3, 0, '', ('99.0.85.38', 0))]
  3. # 通过如下方法即可
  4. >>> socket.getaddrinfo('test1',None)[0][4][0]
  5. '10::10:1'

Done!

发表评论

表情:
评论列表 (有 0 条评论,310人围观)

还没有评论,来说两句吧...

相关阅读