Python网络编程攻略1.2 打印设备名和IPv4地址_Python网络编程攻略1.2 打印设备名和IPv4地址试读-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > web > Python网络编程攻略 > 1.2 打印设备名和IPv4地址

Python网络编程攻略——1.2 打印设备名和IPv4地址

有时,你需要快速查看设备的某些信息,例如主机名、IP地址和网络接口的数量等。这些信息使用Python脚本很容易获取。 1.2.1 准备工作 编写代码之前先要在设备上安装Python。大多数Linux发行版都预装了Python。如果使用微软Windows操作系统,可以从Python的网站上下载二进制文件:http://www.python.org/download/。 要了解系统是否已经安装了Python,可以查阅操作系统的文档。在设备上安装好Python之后,可以在命令行中输入python,尝试打开Python解释器。输入python后应该显示解释器提示符>>>,具体的输出如下所示: ~$ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:05:24) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 1.2.2 实战演练 这个攻略很简短,可以直接写在Python解释器中。 首先,使用下面的命令导入Python中的socket库: >>> import socket 然后,调用socket库提供的gethostname()方法,把结果保存在一个变量中,如下所示: >>> host_name = socket.gethostname() >>> print "Host name: %s" %host_name Host name: debian6 >>> print "IP address: %s" %socket.gethostbyname(host_name) IP address: 127.0.1.1 这些操作可以使用内置的类方法,定义成一个独立的函数print_machine_info()。 我们要在常用的__main__代码块中调用这个函数。运行时,Python会为某些内部变量赋值, 例如__name__。在这里,__name__表示调用程序的进程名。如果在命令行中运行脚本(如后面的命令所示),__name__的值是__main__。但是,如果在其他脚本中导入,情况就不同了。也就是说,如果在命令行中调用这个模块,会自动运行print_machine_info()函数;如果在其他脚本中导入,用户就要手动调用这个函数。 代码清单1-1展示了如何获取设备的信息,如下所示: #!/usr/bin/env python # Python Network Programming Cookbook -- Chapter -1 # This program is optimized for Python 2.7. It may run on any # other Python version with/without modifications. 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() 若想运行这个脚本,要在命令行中指定源码文件,如下所示: $ python 1_1_local_machine_info.py 在我的设备上,显示了如下输出: Host name: debian6 IP address: 127.0.0.1 在你的设备上,输出的内容根据系统的主机配置会有所不同。 1.2.3 原理分析 import socket语句导入Python提供的一个核心网络库。然后调用两个工具函数:gethostname()和gethostbyname(host_name)。在命令行中可以输入help(socket.geth- ostname)查看帮助信息,或者在浏览器中访问http://docs.python.org/3/library/socket.html。在命令行中查看这两个函数的帮助信息,得到的输出如下: gethostname(...) gethostname() -> string Return the current host name. gethostbyname(...) gethostbyname(host) -> address Return the IP address (a string of the form '255.255.255.255') for a host. 第一个函数没有参数,返回所在主机或本地主机的名字。第二个函数接收一个参数hostname,返回对应的IP地址。

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

《Python网络编程攻略》其他试读目录

• 1.1 简介
• 1.2 打印设备名和IPv4地址 [当前]
• 1.3 获取远程设备的IP地址
• 1.4 将IPv4地址转换成不同的格式
• 1.5 通过指定的端口和协议找到服务名
• 1.6 主机字节序和网络字节序之间相互转换
• 1.7 设定并获取默认的套接字超时时间
• 1.8 优雅地处理套接字错误
• 1.9 修改套接字发送和接收的缓冲区大小
• 1.10 把套接字改成阻塞或非阻塞模式
• 1.11 重用套接字地址
• 1.12 从网络时间服务器获取并打印当前时间
• 1.13 编写一个SNTP客户端
• 1.14 编写一个简单的回显客户端/服务器应用
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •