开发者

Python中getservbyport和getservbyname函数的用法大全

开发者 https://www.devze.com 2023-01-13 10:56 出处:网络 作者: 棉猴
目录1 getservbyname()函数1.1 语法1.2 相关代码1.2.1 获取指定服务对应的端口1.2.2 获取指定协议的指定服务对应的端口号2 getservbyport()函数2.1 语法2.2 相关代码2.2.1 获取指定端口对应的服务名2.2.2 获取指定协
目录
  • 1 getservbyname()函数
    • 1.1 语法
    • 1.2 相关代码
      • 1.2.1 获取指定服务对应的端口
      • 1.2.2 获取指定协议的指定服务对应的端口号
  • 2 getservbyport()函数
    • 2.1 语法
      • 2.2 相关代码
        • 2.2.1 获取指定端口对应的服务名
        • 2.2.2 获取指定协议的指定端口号对应的服务名
        • 2.2.3 获取指定范围内端口号对应的服务名

    在python的网络编程中,getservbyport()函数和getservbyname()函数是socket模块中的两个函数,因此在使用这两个函数时,需要导入socket模块。

    1 getservbyname()函数

    getservbyname()函数的作用是通过指定服务的名称获取该服务对应的端口号。

    相关链接1 服务与端口号,一台拥有IP地址的主机可以提供许多服务,这些服务就是通过端口号来进行区分的,即一个端口号对应一个服务。

    1.1 语法

    getservbyname()函数的语法如下所示:

    <code class="language-plaintext hljs">socket.getservbyname(servicename[, protocolname])</code>

    其中,参数servicename即为要查找的服务名;参数protocolname是一个可选的参数,表示该服务所基于的协议名,该参数可以设置为‘tcp’或者‘udp’,如果不设置该参数,则基于任何协议的服务均可查询。

    1.2 相关代码

    1.2.1 获取指定服务对应的端口

    使用图1所示代码可以获取指定服务对应的端口。

    Python中getservbyport和getservbyname函数的用法大全

    图1 获取指定服务对应的端口

    以上代码的作用是获取ftp服务对应的端口,即端口号21。

    1.2.2 获取指定协议的指定服务对应的端口号

    使用图2所示代码可以获取指定协议的指定服务对应的端口。

    Python中getservbyport和getservbyname函数的用法大全

    图2 获取指定协议的指定服务对应的端口

    以上代码的作用是获取基于tcp协议的ftp服务对应的端口,实际上和图1中代码的作用相同。如果将协议设置为upd,如图3所示,编程此时代码会报错。

    Python中getservbyport和getservbyname函数的用法大全

    图3 获取基于udp的ftp服务对应的端口

    以上代码的作用是获取基于udp协议的ftp服务对应的端口,从报错信息可以看出,没有找到基于udp协议的ftp服务,实际上我们使用的ftp服务都是基于tcp协议的。

    2 getservbyport()函数

    getservbyport()函数的www.devze.com作用是通过指定端口号获取该端口号对应的服务名。

    2.1 语法

    getservbyport()函数的语法如下所示:

    <code class="language-plaintext hljs">socket.getservbyport(port[, protocolname])</code>

    其中,参数port是指定的端口号;参数rotocolname是一个可选的参数,表示该服务所基于的协议名,该参数可以设置为‘tcp’或者‘udp’,如果不设置该参数,则基于任何协议的服务均可查询。

    2.2 相关代码

    2.2.1 获取指定端口对应的服务名

    使用图4所示代码可以获取指定端口对应的服务名。

    Python中getservbyport和getservbyname函数的用法大全

    图4 获取指定端口对应的服务名

    以上代码的作用是获取端口21对应的服务名,即ftp服务。

    开发者_开发教程2.2.2 获取指定协议的指定端口号对应的服务名

    使用如图5所示的代码可以获取指定协议的指定端口号对应的服务名。

    Python中getservbyport和getservbyname函数的用法大全

    图5 获取指定协议的指定端口号对应的服务名

    以上代码的作用是获取基于tcpphp协议的21端口号对应的服务名,实际上和图1中代码的作用相同。如果将协议设置为upd,如图6所示,此时会得到另外的一个服务名fsp。也就是说ftp服务和fsp服务都是使用21端口,但是ftp服务是基于tcp协议的,fsp服务是基于udp的。

    Python中getservbyport和getservbyname函数的用法大全

    图6 获取指定协议的指定端口号对应的服务名

    相关链接2, fsp是file server protocol即文件服务协议的简写,是一个基python于UDP轻量级的文件传输协议。

    2.2.3 获取指定范围内端口号对应的服务名

    可以通过for循环获取指定范围内端口号对应的服务名,如图7所示。

    Python中getservbyport和getservbyname函数的用法大全

    图7 获取指定范围内端口号对应的服务名

    以上代码的作用是获取1-99的端口号对应的服务名,因为有些端口没有对应的服www.devze.com务名,此时getservbyport()函数会报错,因此使用异常处理的方式,当该端口没有对应服务名时,输出相应信息,如图8所示。

    Python中getservbyport和getservbyname函数的用法大全

    图8 1-99端口对应的服务名

    到此这篇关于Python中getservbyport和getservbyname函数的用法的文章就介绍到这了,更多相关getservbyport和getservbyname函数的用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消