判斷兩台計算機IP位址是同一子網路

2021-06-22 08:10:26 字數 1091 閱讀 9603

子網掩碼是用來判斷任意兩台計算機的ip位址是否屬於同一子網路的根據。       

利用sscanf_s函式進行格式化輸入,很方便得到各個數字,下面進行與運算就ok了

#include#include "oj.h"

/*功能: 判斷兩台計算機ip位址是同一子網路。

原型: int issamesubnetwork(char * pcip1, char * pcip2, char * pcsubnetworkmask);

輸入引數:

char * pcsubnetworkmask: 子網掩碼,格式:「255.255.255.0」;

返回值:

0:ip1與ip2不屬於同一子網路;

1:ip1與ip2屬於同一子網路;

*/int issamesubnetwork(char * pcip1, char * pcip2, char * pcsubnetworkmask)

; int ip2[4] = ;

int ip3[4] = ;

sscanf_s(pcip1, "%d.%d.%d.%d", &ip1[0], &ip1[1],&ip1[2],&ip1[3]);

sscanf_s(pcip2, "%d.%d.%d.%d", &ip2[0], &ip2[1],&ip2[2],&ip2[3]);

sscanf_s(pcsubnetworkmask, "%d.%d.%d.%d", &ip3[0], &ip3[1],&ip3[2],&ip3[3]);

// or: sum = sum * 10 +str[i] -'0';

for (int i=0;i<4;i++)

if ((ip1[0] & ip3[0]) == (ip2[0] & ip3[0]))

if((ip1[1] & ip3[1]) == (ip2[1] & ip3[1]))

if((ip1[2] & ip3[2]) == (ip2[2] & ip3[2]))

if((ip1[3] & ip3[3]) == (ip2[3] & ip3[3]))

return 1;

return 0;

}

兩台計算機通訊過程

鏈路層有乙太網 令牌環網等標準,鏈路層負責網絡卡裝置的驅動 幀同步 即從網線上檢測到什麼訊號算作新幀的開始 衝突檢測 如果檢測到衝突就自動重發 資料差錯校驗等工作。交換機是工作在鏈路層的網路裝置,可以在不同的鏈路層網路之間 資料幀 比如十兆乙太網和百兆乙太網之間 乙太網和令牌環網之間 由於不同鏈路層...

計算機基礎一 IP位址與網域名稱解析

一,free ip scanner 1 是免費的區域網ip位址掃瞄軟體,它簡單地ping每個ip位址以檢查它是否還活著 2 可以掃瞄出某乙個區域網中所有的ip位址 正在用的ip位址和沒有使用的ip位址 3 可以掃瞄對應的網絡卡mac位址,計算機名,所在工作組或域等.二,內網ip與外網ip的區別?l路...

如何判斷兩個IP位址是不是在同乙個網段

如何判斷兩個ip位址是不是在同乙個網段 要判斷兩個ip位址是不是在同乙個網段,就將它們的ip位址分別與子網掩碼做與運算,得到的結果一網路號,如果網路號相同,就在同一子網,否則,不在同一子網。例 假定選擇了子網掩碼255.255.254.0,現在分別將上述兩個ip位址分別與掩碼做與運算,如下所示 ww...