socket模块
寻址、协议簇、和套接字类型
1、套接字(socket):TCP用主机的IP地址加上主机的端口号作为TCP连接的端点,这种端点就叫做套接字
2、套接字有两个主要属性用于控制如何发送数据:地址簇(address family)、套接字类型(socket type)
3、地址簇(address family):用于控制所用的OSI网络层协议
4、套接字类型(socket type):控制传输层协议
5、python支持3个地址簇:
AF_INET:用于IPv4 internet寻址
AF_INET6:用于IPv6 internet寻址
AF_UNIX:用于Unix域套接字
6、套接字类型:
gethostname
查询当前主机的正式名,用gethostname
import socket
s=socket.gethostname()
print(s)
gethostbyname
通过访问操作系统主机名解析API,并将服务器名转换为其数字地址
hosts=[
"DESKTOP-ISR2H44",
"pymotw.com",
"www.python.org",
"www.baidu.com",
"nosuchame"
]
for host in hosts:
try:
print("{}:{}".format(host,socket.gethostbyname(host)))
except socket.error as msg:
print("{}:{}".format(host,msg))
结果:
DESKTOP-ISR2H44:192.168.116.1
pymotw.com:66.33.211.242
www.python.org:151.101.108.223
www.baidu.com:220.181.38.149
nosuchame:[Errno 11001] getaddrinfo failed