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

作者:棉猴 时间:2023-04-14 09:02:38 

在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是一个可选的参数,表示该服务所基于的协议名,该参数可以设置为&lsquo;tcp&rsquo;或者&lsquo;udp&rsquo;,如果不设置该参数,则基于任何协议的服务均可查询。

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()函数的作用是通过指定端口号获取该端口号对应的服务名。

2.1 语法

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

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

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

2.2 相关代码

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

来源:https://blog.csdn.net/hou09tian/article/details/128651529

标签:python,getservbyport,getservbyname,函数
0
投稿

猜你喜欢

  • Python zip函数打包元素实例解析

    2023-04-18 12:53:52
  • JavaScript实现控制打开文件另存为对话框的方法

    2024-05-02 16:29:04
  • Django如何防止定时任务并发浅析

    2021-10-23 01:09:54
  • Django实现WebSocket在线聊天室功能(channels库)

    2023-04-01 00:41:55
  • php去除html标记的原生函数详解

    2024-03-17 20:23:22
  • 深入讨论Python函数的参数的默认值所引发的问题的原因

    2022-08-03 00:54:31
  • JavaScript基本语法_动力节点Java学院整理

    2024-04-18 09:49:41
  • Python classmethod装饰器原理及用法解析

    2023-02-14 06:59:01
  • Go语言中的闭包详解

    2023-06-30 05:27:14
  • SQL Server复制功能 巧妙选择避开Bug

    2011-01-04 17:03:00
  • pygame编写音乐播放器的实现代码示例

    2021-08-12 18:08:48
  • CSS中写expression可能会在Chrome中有问题

    2010-01-29 13:10:00
  • Python中Subprocess的不同函数解析

    2022-03-10 05:23:00
  • JavaScript实现点击按钮直接打印

    2024-04-16 10:27:59
  • 教你用scrapy框架爬取豆瓣读书Top250的书类信息

    2022-11-04 12:48:23
  • 必须会的SQL语句(二) 创建表、修改表结构、删除表

    2024-01-19 16:51:16
  • PHP访问MySQL查询超时处理的方法

    2023-11-23 03:05:48
  • asp在sql server2000中新建帐号和给帐号权限代码

    2008-01-29 13:46:00
  • python中文件操作与异常的处理图文详解

    2021-09-04 16:04:33
  • Python手机号码归属地查询代码

    2021-05-02 05:00:30
  • asp之家 网络编程 m.aspxhome.com