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

 更新时间:2023年01月12日 10:33:26   作者:棉猴  
在Python的网络编程中,getservbyport()函数和getservbyname()函数是socket模块中的两个函数,因此在使用这两个函数时,需要导入socket模块,这篇文章主要介绍了Python中getservbyport和getservbyname函数的用法,需要的朋友可以参考下

在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所示代码可以获取指定服务对应的端口。

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

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

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

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

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

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

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

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

2 getservbyport()函数

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

2.1 语法

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

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

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

2.2 相关代码

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关文章

  • Python当中的array数组对象实例详解

    Python当中的array数组对象实例详解

    这篇文章主要介绍了Python当中的array数组对象,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-06-06
  • 详解Selenium-webdriver绕开反爬虫机制的4种方法

    详解Selenium-webdriver绕开反爬虫机制的4种方法

    这篇文章主要介绍了详解Selenium-webdriver绕开反爬虫机制的4种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • python 查找文件名包含指定字符串的方法

    python 查找文件名包含指定字符串的方法

    今天小编就为大家分享一篇python 查找文件名包含指定字符串的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python读取mat文件,并转为csv文件的实例

    Python读取mat文件,并转为csv文件的实例

    今天小编就为大家分享一篇Python读取mat文件,并转为csv文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python人工智能深度学习RNN模型结构流程

    Python人工智能深度学习RNN模型结构流程

    这篇文章主要为大家介绍了Python人工智能深度学习RNN的模型流程结构,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • python中将字典改造为对象的方法

    python中将字典改造为对象的方法

    这篇文章主要介绍了python中将字典改造为对象的方法,在实际项目中,当使用json模块加载一个深度很深的字典类型的json文件时,使用字典的访问方式,将会出现很多中括号,即不直观也不美观,可以将这个字典转化为对象,使得可以用.的方式访问,需要的朋友可以参考下
    2023-11-11
  • 学习Python中一些实用的库

    学习Python中一些实用的库

    这篇文章主要介绍了Python学习之盘点一些Python中实用的库,有需要的同学可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2021-09-09
  • Python pip超详细教程之pip的安装与使用

    Python pip超详细教程之pip的安装与使用

    python中有许多有用的库,要使用这些第三方库,需要安装pip。这篇文章主要为大家介绍了pip的安装与使用,解决pip下载速度慢的问题,需要的可以参考一下
    2022-07-07
  • numpy数组之读写文件的实现

    numpy数组之读写文件的实现

    本文主要介绍了numpy数组之读写文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 使用Django的JsonResponse返回数据的实现

    使用Django的JsonResponse返回数据的实现

    这篇文章主要介绍了使用Django的JsonResponse返回数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01

最新评论