玖富彩票开户

Python 高级

【Python高级教程】python之网络编程

2019-01-26 09:16
python中进行网络编程主要用到了socket模块,在socket模块中提供了许多类方法和实例方法,供我们调用。在应用socket模块编写程序之前,我们需要了解一些有关网络的基础内容。

       在计算机网络中,OSI(Open System Interconnection)七层模型定义了计算机通信的基本框架。它是一种理想的模型,包含应用层、会话层、表示层、传输层、网络层、链路层和物理层。在实际使用过程中不会像OSI一样,对传输过程划分的十分细致,由此衍生出四层模型(应用层、传输层、网络层、物理链路层)和五层模型(应用层、传输层、网络层、链路层、物理层)。

        网络协议,是在网络通信中所有参与者都必须遵守的约定。比如在应用层包括TFTP协议、HTTP协议、SMTP协议(用于邮件传输)等,传输层包括TCP协议、UDP协议(在后续的编程过程中,主要是编写基于这两种协议的程序),网络层由IP协议。

        下面将介绍一些基本的网络指令,这些指令都是在ubuntu中python3的交互模式中进行的。打开终端,输入ipython3或者python3进入python的交互模式,可以输入一下代码观看输出的结果。    

import socket
socket.gethostname()  #获取主机名
socket.gethostbyname('localhost') #获取本机IP,一般输出的是本机测试IP,127.0.0.1
socket.inet_aton('192.168.1.2')  #将IP地址转换成二进制形式,输出结果是:b'\xc0\xa8\x01\x02'
socket.inet_ntoa(b'\xc0\xa8\x01\x02')  #将二进制转换为点分十进制
socket.inet_pton(socket.AF_INET,'192.168.1.1') #同socket.inet_aton只是参数代表转换的地址是IPv4还是IPv6,socket.AF_INET表示IPv4
socket.inet_ntop(socket.AF_INET,b'\xc0\xa8\x01\x02') #同socket.inet_ntoa,也需要参数设置IPv4,IPv6
        在网络中,IP地址用来区分不同的主机,在一台主机内,用不同的端口号(port)来区分不同的应用程序。端口号的范围是1-65535,其中1-1024是 一些知名端口,通常被系统使用或者被一些应用程序使用,比如FTP服务器使用21端口,telnet服务使用23端口。在python中查询一个应用使用哪个端口可以使用下面的指令:

socket.getservbyname('mysql')  #获取mysql数据库使用的端口号,输出为:3306
socket.getservbyname('telnet') #输出:23
        子网掩码通常配合IP一起使用,用来过滤网段,将IP地址划分为网络地址和主机地址。还有DNS,主要是用来进行域名解析,在此不做过多介绍。
---------------------
作者:骑着蜗牛上五环
获取更多免费资源加qq群:869484885
兄弟连官网:www.tongrunyeya.com
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除玖富彩票开户相关的文章,以保证您的权益!

开班信息

当前校区

北京校区
  • 北京校区
  • 上海校区
  • 广州校区
  • 沈阳校区
  • 杭州校区
  • 南京校区
  • 郑州校区
  • 成都校区
  • 深圳校区
  • 西安校区
  • 苏州校区

Copyright © 2007-2019 IT兄弟连教育 版权所有 京ICP备11018177号  京公网安备 11010802026987号