爲了達到通信的目的,需要給參與通信的主機一個號碼,這個就是ip地址,它具有唯一性。
主機名就是在一個特定網絡範圍內一個計算機的名字。
域名則是在因特網範圍內某一個服務器的名字。
一般有如下關係:
1.IP地址=網絡號(特定網絡前綴)+具體網絡點(主機地址)
2.域名包含主機名
強調幾點:1.IP地址爲通訊的根本。
2.IP地址並不代表一臺具體的主機,而是代表一臺主機與一特定網絡的鏈接。
所以:
1.一臺主機可以擁有多個IP地址(一方一些網絡不能用),所以一個域名可以有多個IP地址,但在一個時刻只能用一個IP。
2.一個IP地址只能作用在一個站點上,但一個站點內可以有多臺計算機,此爲網絡地址轉換(HAT)技術,無線WiFi技術的原理。
接下來:講講實用的東西:
1.知域名求IP:
#getip.py
import socket
host='www.google.cn'
#get ip
result=socket.getaddrinfo(host,None)
ip=result[0][4]
print(ip)
2.知IP求域名:使用 gethostbyname(ip)函數。
然後:如果你照上面反向查詢的話,那麼極有可能是一個錯誤,(你怎麼知道Google一定使用那個IP呢?)
用你自己的機器試試,然後socket.getfqdn(host)獲得全名,當然你有可能得不到。