經過指定的端口和協議找到服務名若是想找到網絡服務,最好知道該服務運行在TCP或UDP協議的哪一個端口上。若是知道網絡服務使用的端口能夠調用socket庫中的getservbyport()函數來獲取服務的名字。mysql
技術點分解:sql
一、定義find_service_name()函數,注意函數內代碼縮進bash
二、getservbyport(port,port_type),經過port查找service,port_type爲‘tcp’和‘udp’兩種網絡
三、for-in 循環一組變量。在每次遍歷中,獲取端口對應的服務名socket
代碼以下:tcp
import socket def find_service_name(): port_type = 'tcp' port_type1 = 'udp' for port in [25,80,22]: print ("Port: %s => service name: %s" %(port,socket.getservbyport(port,port_type))) print("Port: %s => service name: %s" % (53, socket.getservbyport(53, 'udp'))) find_service_name()
備註:socket.getservbyport這函數定義的端口種類過少,通過測試像3306 mysql這種常見的都顯示報錯,只當作測試使用吧,我的感受沒啥太大實用價值ide
運行結果:函數