子網掩碼是用來判斷任意兩台計算機的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...