js判斷ip位址,子網掩碼,閘道器的邏輯性檢查

2022-06-21 10:24:16 字數 1629 閱讀 4738

因為要做靜態位址配置的js校驗,找了好多資料發現網上都是關於ip,mask的有效性檢查,沒有ip,submask,gateway的邏輯性判斷,自己寫下**供需要的人參考。

就是進行與運算1與1得1,1與0為0,0與0為0。首先把ip和子網掩碼展開

10.70.64.223 00001010 .01000110.01000000.11011111

255.255.255。0 111111111.11111111.11111111.00000000

網段就是 00001010 .01000110.01000000.00000000

然後轉換成十進位制就是:10.70.64.0

ip位址與子網掩碼做與運算和閘道器位址與子網掩碼做與運算得到的結果應該是一致的就對了,也就是主機號一致。

我這裡是先用js將ip,mask,gateway按照『.』分隔後相與做判斷的。

js的按位與運算:

result = 【整數1】 & 【整數1】

& 對兩個 32 位表示式的每乙個位執行按位「與」運算。 如果兩個位均為 1,則結果是 1。 否則,結果為 0。

if(static_ip == static_mask || static_mask == static_gw  || static_mask == static_gw)

var static_ip_arr = new array;

var static_mask_arr = new array;

var static_gw_arr = new array;

static_ip_arr = static_ip.split(".");

static_mask_arr = static_mask.split(".");

static_gw_arr = static_gw.split(".");

var res0 = parseint(lan_ip_arr[0]) & parseint(static_mask_arr[0]);

var res1 = parseint(lan_ip_arr[1]) & parseint(static_mask_arr[1]);

var res2 = parseint(lan_ip_arr[2]) & parseint(static_mask_arr[2]);

var res3 = parseint(lan_ip_arr[3]) & parseint(static_mask_arr[3]);

var res0_gw = parseint(static_gw_arr[0]) & parseint(static_mask_arr[0]);

var res1_gw = parseint(static_gw_arr[1]) & parseint(static_mask_arr[1]);

var res2_gw = parseint(static_gw_arr[2]) & parseint(static_mask_arr[2]);

var res3_gw = parseint(static_gw_arr[3]) & parseint(static_mask_arr[3]);

if(res0==res0_gw && res1==res1_gw && res2==res2_gw  && res3==res3_gw)

else

IP位址 子網掩碼 閘道器

1 ip和ip位址 ip internet protocol 是為計算機網路互連通訊而設計的網路協議,任何廠家生產的計算機系統,只要遵循ip協議就可以與網際網路互連互通。那網際網路中計算機之間要實現通訊,就必須具有乙個對應的ip位址,並且網路中每台計算機的ip位址都是唯一的,從而與其他計算機區別開,...

IP位址 子網掩碼 閘道器

a類 b類 c類ip位址區別子網掩碼 子網掩碼定義 subnet mask 又叫網路掩碼,位址掩碼,子網掩碼就是將主機位址的幾位用來做網路位址來將網路劃分成若干個子網,它是一種用來指明乙個ip位址的哪些位標識的是主機所在的子網,以及哪些位標識的是主機的位掩碼。子網掩碼不能單獨存在,它必須結合ip位址...

IP位址 閘道器位址 子網掩碼位址

今天在用c 實現設定網路位址的時候竟然不知到閘道器與ip位址要在同網段這個關係,比較漢。趕緊補一下!ip位址 tcp ip transmite control protocol 傳輸控制協議 internet protocol網際協議 已成為計算機網路的一套工業標準協議。在應用 tcp ip協議的網...