輸入埠號內容校驗

2021-10-08 02:45:45 字數 2331 閱讀 2514

遇到這麼乙個需求,**上某個輸入框,允許使用者輸入埠號,支援單個埠號,多個埠號以逗號隔開,連續埠號以-分隔;同時支援輸入多個、多種型別的埠號;最簡單的方式是使用正則篩查,但是沒找到合適的正則,就臨時用python寫了乙個判斷指令碼;

#!/usr/bin/python

# _*_ coding:utf-8 _*_

#驗證埠號輸入內容,埠號之間以逗號隔開,連續埠以-連線,允許多個埠號

import os

import re

import sys

defport_check()

:while

true

:try

: ports =

str(

raw_input

('請輸入埠號:'))

#排除空

if ports =="":

print

("內容不能為空"

)continue

elif ports ==

"q":

break

#排除非法字元

elif re.search(

"[,\d-]+"

,ports)

.group(

)!= ports:

print

("內容中包含非法字元"

)continue

#字串中不包含逗號

elif

','not

in ports:

#判斷字串是否包含-

if'-'

in ports:

#判斷字串格式是否為xx-xx

if re.search(

"\d+-\d+"

,ports)

.group(

)== ports:

for port in ports.split(

'-')

:#驗證埠號範圍

ifint

(port)

<=0or

int(port)

>

65535

:print

("埠號不合規"

)break

else

:print

("ok"

)else

:print

("連續埠格式不合規"

)continue

else

:#驗證埠號範圍

ifint

(ports)

>

0and

int(ports)

<

65535

:print

("ok"

)else

:print

("埠號不合規"

)else

:for port in ports.split(

",")

:if port =="":

print

("內容不合規"

)break

elif

'-'in port:

#判斷字串格式是否為xx-xx

if re.search(

"\d+-\d+"

,port)

.group(

)== port:

#驗證埠號範圍

list

= port.split(

'-')

ifint

(list[0

])<=0or

int(

list[0

])>

65535

orint

(list[1

])<=0or

int(

list[1

])>

65534

:print

("埠號不合規"

)break

else

:print

("連續埠格式不合規"

)continue

else

:#驗證埠號範圍

ifint

(port)

<=

0and

int(port)

>=

65535

:print

("埠號不合規"

)break

else

:print

("ok"

)except

:continue

if __name__ ==

"__main__"

: port_check(

)

修改埠號

修改埠號 在預設情況下,tomcat的埠是8080,使用了兩個tomcat,那麼就需要修改其中的乙個的埠號才能使得兩個同時工作。那麼,如何修改tomcat的埠號呢?首先到安裝目錄 或者解壓目錄 下找到conf資料夾,在裡面找到server.xml的檔案,找到 將port 8080 改為其它的就可以了...

網路埠號

網路埠 一.提出的背景 在多程序的環境下,為了解決兩個主機之間的通訊,但是源主機不知道要傳送訊息給目的主機的哪乙個程序,所以,必須使用埠號來確定目的主機上的唯一的乙個程序。埠號應用於傳輸層。二.分類 一 按照埠號分為3類 1 公共埠 從0 1023,總共1024個這些埠的通訊都明確表明了某種服務的協...

預設埠號

序號 mysql 埠號1 mysql 3306 2redis 6379 3zookeeper 2181 4kafka 9092 5etcd 客戶端連線埠 2379 內部互聯埠 監聽節點間通訊 2380 6influxdb 8086 用於客戶端和服務端互動的http api 8088 用於提供備份和恢...