static未來得及測試,有不足之處或者有更好的方法請踴躍交流string allowipranges = ;
//主函式,呼叫判斷介面
static
void main(string
args)
//介面函式 引數分別是你要判斷的ip 和 你允許的ip範圍
//(已經過載)
//(允許同時指定多個陣列)
static
bool theipisrange(string ip, params
string
ranges)
}return
tmpres;
}//////
判斷指定的ip是否在指定的ip範圍內 這裡只能指定乙個範圍
/// ///
//////
static
bool theipisrange(string ip, string
ranges)
catch
(exception)
if (count==1&&ip == start_ip) result = true
;//如果指定的ip範圍就是乙個ip,那麼直接匹配看是否相等
else
if (count == 2
)//如果指定ip範圍 是乙個起始ip範圍區間
}result =tmpres;
}return
result;
}//嘗試解析ip範圍 並獲取閉區間的 起始ip (包含)
private
static
void tryparseranges(string ranges, out
int count, out
string start_ip, out
string
end_ip)
catch
(exception)
if (_r.count() == 2
)
catch
(exception)}}
//////
將ip四組值 轉換成byte型
/// ///
///static
byte get4byte(string
ip)
return
res.toarray();
}
剛發布,網友就告訴我乙個更簡單的方法就是 把ip轉換成long型
但是隨後 經過測試 發現轉換成long型別的方法 還是有問題 :
比如:192.168.0.0~192.168.255.255和10.0.0.0~10.255.255.255是允許的ip端
如果192.165.0.0本來不在前面這個範圍 也不在 後面那個範圍
但是用long的方法 就會檢測出道後面這個範圍內。
用我上面的方法就可以準確檢測
python 判斷乙個IP位址是否合法
最近在看tornado的原始碼,遇到了 is valid ip ip 這個函式,該函式用來判斷乙個ip位址是否合法,支援ipv4和ipv6,想到自己前陣子也遇到過這個問題,看著原始碼的解決方法要比自己的好多了,就摘抄下來,以留備用 def is valid ip ip returns true if...
判斷乙個整數是否為素數 確定乙個整數是否是2的冪
給定乙個整數,編寫乙個函式來確定它是否是2的冪。範圍 1 2 31 1 測試用例 輸入 16,輸出 true 因為 2 4 16 輸入 18,輸出 false.最明顯的暴力方法就是除以2,然後檢查它是否達到1。var poweroftwo function n 由於給出的範圍在0 2 31 1之間,...
判斷乙個整數是否是回文數
判定乙個正整數是否是乙個回文數。例如12121是回文數,而1231不是回文數。要判斷乙個整數是否是回文數,最自然的想法是把整數轉換成乙個字串,然後根據回文的對稱特性進行判斷。數字轉換為字串可以通過itoa函式實現,判斷字串是否為回文字串 如下 bool ispalindrome string str...