判斷IP是否屬於同一網段

  • 979
  • 0

摘要:判斷IP是否屬於同一網段

記錄一下遇到的問題

要判斷來源IP是否屬於特定網段

參考了一些資料

http://powerfuleric.pixnet.net/blog/post/41100062-%E5%9F%BA%E6%9C%ACip%E6%A6%82%E5%BF%B5

所以就先把來源IP與特定網段的IP、子網路遮罩

進行AND運算

相關程式碼如下

private bool checkIP(string ipAddress,string submask,string clientIP)
    {
        String[] ip = ipAddress.Split(new char[] { '.' });
        String[] ip2 = clientIP.Split(new char[] { '.' });
        String[] arysubmask = submask.Split(new char[] { '.' });
 
        if ((int.Parse(ip[0]) & int.Parse(arysubmask[0])) == ((int.Parse(ip2[0]) & int.Parse(arysubmask[0])))
            && (int.Parse(ip[1]) & int.Parse(arysubmask[1])) == ((int.Parse(ip2[1]) & int.Parse(arysubmask[1])))
            && (int.Parse(ip[2]) & int.Parse(arysubmask[2])) == ((int.Parse(ip2[2]) & int.Parse(arysubmask[2])))
            && (int.Parse(ip[3]) & int.Parse(arysubmask[3])) == ((int.Parse(ip2[3]) & int.Parse(arysubmask[3]))))
        {
            return true;
        }
 
 
        return false;
    }

 

先記錄起來

明天再來看看有沒有更好的寫法