【问题标题】:Getting IP address of the beagleboard using python使用python获取beagleboard的IP地址
【发布时间】:2015-04-19 05:34:30
【问题描述】:
SIOCGIFADDR = 0x8915

def getIpAddr(iface = 'eth0'):

     ifreq = struct.pack('16sH14s', iface, socket.AF_INET, '\x00'*14)
     try:
         res = fcntl.ioctl(sock, SIOCGIFADDR, ifreq)
     except:
         return None   
     ip = struct.unpack('16sH2x4s8x', res)[2]
     return socket.inet_ntoa(ip)

每一步函数的返回值是多少? 还有,什么是 SIOCGIFADDR? 还有,为什么[2]跟在unpack()函数后面用了?

【问题讨论】:

    标签: python beagleboneblack struct.pack


    【解决方案1】:

    SIOCGIFADDR :代表获取互联网接口地址,意思是“eth0”。 这是写在地址 0x8915 的 CPU 宏。 您无法访问该 cpu 地址,因此您必须使用参数执行打包和解包功能 “16sH2x4s8x” 您想从机器获得的 IP 地址有 4 个字段,例如“192.168.5.20” 因此需要 (4*4) 16 同样搜索更多的打包解包函数字段。

    【讨论】:

      猜你喜欢
      • 2016-11-06
      • 2022-11-26
      • 1970-01-01
      • 2021-10-06
      • 2017-10-05
      • 2011-01-19
      • 2018-07-26
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多