- 版本:python 2.7.6
- 获取设备名的函数为gethostname()
- 获取IP地址的函数为gethostbyname(host)
Key point
这两个函数在socket模块中。socket模块提供了类方法和实例方法。这两个函数属于类方法。
编写独立的print_machine_info()函数
__author__ = 'liyuan35023'
# !/home/mimiasd/PycharmProjects/workspace python27
import socket
def print_machine_info():
host_name = socket.gethostname()
ip_address = socket.gethostbyname(host_name)
print "Host name : %s"% host_name
print "IP address : %s"% ip_address
if __name__ == '__main__':
print_machine_info()
我们要在常用的main代码块中调用print_machine_info()函数。运行时,Python会为某些内部变量赋值,例如name。如果在命令行中运行脚本,name变量的值是main,即可以直接运行此函数。如果在其他脚本中调用,就需要先在其他脚本中导入,再手动调用此函数。
获取远程设备的IP地址
如果想知道远程设备的IP地址,可以使用内置的库函数gethostbyname(),其参数是远程设备的主机名。
import socket
import logging
def get_remote_machine_info():
remote_host = 'www.pytgo.org'
try:
#print "IP address :%s" %socket.gethostbyname(remote_host)
print_IP(remote_host)
except BaseException, err_msg:
print "%s: %s" %(remote_host,err_msg)
logging.exception(err_msg)
def print_IP(host_name):
print "IP address :%s" %socket.gethostbyname(host_name)
if __name__ == '__main__':
get_remote_machine_info()