您的位置:首页 > 理论基础 > 计算机网络

python网络编程之网络主机信息

2016-08-26 16:45 393 查看
功能: 获取设备名称
方法: gethostname()
参数:
返回值:hostname(string)



功能: 获取设备ipv4地址
方法: gethostbyname()
参数: hostname(string)
返回值:ip(string)



功能: 通过端口名获取对应服务名
方法: getservbyport()
参数: port(int)
返回值:ip(string)



........

#!/usr/bin/env python
#coding:utf-8
'''
An example of getting some information of the host
'''
import socket

#获取设备名称
def gethostName():
return socket.gethostname()

#获取设备ipv4地址
def gethostIp(host_name):
return socket.gethostbyname(host_name)

#通过端口名获取对应服务名
def getServiceName(port):
return socket.getservbyport(port)

#把ipv4转换为打包后的32位二进制格式并用十六进制表示
from binascii import hexlify
def convert_ipv4_to_hex(ipv4):
ip_binary = socket.inet_aton(ipv4)
return hexlify(ip_binary)

#将数据转化为网络字节序
def convert_data_to_networkEndian(data):
return socket.htonl(data)

if __name__ == '__main__':
print gethostName()
print gethostIp("www.baidu.com")
print convert_ipv4_to_hex('127.0.0.1')
print getServiceName(21)
print convert_data_to_networkEndian(1234)
print convert_data_to_hostEndian(1234)


执行结果:



字节序转换补充:

"""
字节序/主机序转换方法:

  htons 把 unsigned short 类型从主机序转换到网络序
  htonl 把 unsigned long 类型从主机序转换到网络序
  ntohs 把 unsigned short 类型从网络序转换到主机序
  ntohl 把 unsigned long 类型从网络序转换到主机序
"""

可以使用help查看方法的属性





socket中一些常用方法:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: