標籤:
功能:列印主機名稱和主機IP:
[[email protected] python]# cat socket1.py #!/usr/bin/pythonimport sockethost_name = socket.gethostname()print "hostname:%s" % host_nameprint "IP address: %s" %socket.gethostbyname(host_name)
運行結果:
[[email protected] python]# ./socket1.py
hostname:iZ94gh8l046Z
IP address: 10.170.16.67
模組:
import socket
使用方法:
socket.gethostname擷取hostname(/etc/hostname)
socket.gethostbyname擷取主機IP
改進之後:
[[email protected] python]# cat socket2.py #!/usr/bin/pythonimport socketdef print_machine_info(): host_name = socket.gethostname() ip_address = socket.gethostbyname(host_name) print "hostname:%s" % host_name print "IP address: %s" %ip_addressif __name__ == '__main__': print_machine_info()
運行結果:
[[email protected] python]# ./socket2.py
hostname:iZ94gh8l046Z
IP address: 10.170.16.67
說明:我們要在常用的__main__代碼塊中調用這個函數。
運行時,Python會為某些內部變數賦值,例如__name__。在這裡,__name__表示調用程式的進程名。
如果在命令中運行指令碼,__name__的值是__main__
但是,如果在其他指令碼中匯入,情況就不同了。
也就是說,如果在命令列中調用這個模組,會自動運行print_machine_info()函數
如果在其他指令碼中匯入,使用者就要手動調用這個函數。
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
python網路編程:socket,gethostname,gethostbyname