歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> 根據輸入網絡服務名稱取得端口號

根據輸入網絡服務名稱取得端口號

日期:2017/3/1 10:07:27   编辑:Linux編程

查看/etc/services文件,可以浏覽所有網絡服務名對應的端口號,由於文件列表太長,不方便查閱,就寫個正則表達式的shell來指定特別的服務名稱查詢對應的端口號,或者根據端口號來查詢對應的服務名稱。

  1. #!/bin/bash
  2. read -p "choose service_name or port_number, 1:service, 2:port: " num
  3. case $num in
  4. "1")
  5. read -p "type the service name: " service_name
  6. grep "^$service_name .*" /etc/services |grep 'tcp'|awk '{print $2}'|awk 'BEGIN{FS="/"} {print "port number is " $1}'
  7. ;;
  8. "2")
  9. read -p "type the port number: " port_num
  10. grep "^.* $port_num/" /etc/services |grep 'tcp'|awk '{print "service name is " $1}'
  11. ;;
  12. *)
  13. echo "1:service name 2:port number"
  14. ;;
  15. esac

首先選擇1)服務名稱 或者 2)端口號 來查詢,輸入其他則提示信息。

選擇1則提示輸入服務名稱,然後得到對應端口號,若沒有則不打印結果,

  1. choose service_name orport_number, 1:service, 2:port: 1
  2. type the service name: http
  3. port number is 80

選擇2則提示輸入端口號,得到對應網絡服務名稱,若沒有則不打印結果。

  1. choose service_name or port_number, 1:service, 2:port: 2
  2. type the port number: 21
  3. service nameis ftp
Copyright © Linux教程網 All Rights Reserved