我們知道,計算機在訪問遠程主機的時候,本質上是通過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)