我们知道,计算机在访问远程主机的时候,本质上是通过IP地址来进行访问的,但我们实际在使用的时候,例如我们想访问百度的主页,我们是通过在浏览器的地址栏输入百度的域名来进行访问的,因此,计算机需要将百度的域名解析成IP地址来进行访问。那么,如果我们仅知道某一个远程主机的域名,而不知道其IP地址,Python如何解决此类问题呢?下面这个小程序,会给大家答案。
#导入Socket模块,否则gethostbyname无法使用
importsocket
#待解析的域名主机
host=\'www.baidu.com\'
port=80
#异常处理
try:
remote_ip=socket.gethostbyname(host)
exceptsocket.gaierror:
#若无法解析host的IP
print(\'hostnamecouldnotberesolved.\')
sys.exit()
print(\'IPaddressof"\'+host+\'"is\'+remote_ip)
#连接到远程主机
s=socket.socket()
s.connect((remote_ip,port))
print(\'SocketConnectedto\'+host+\'onip\'+remote_ip)