判断任意两台计算机的IP地址是否属于同一子网络
2015-12-13 13:33
435 查看
功能: 判断两台计算机IP地址是同一子网络。
原型:
int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);
输入参数:
char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”;
char * pcIP2: 计算机2的IP地址,格式:“192.168.0.1”;
char * pcSubNetworkMask: 子网掩码,格式:“255.255.255.0”;
返回值:
0:IP1与IP2不属于同一子网络;
1:IP1与IP2属于同一子网络;
原型:
int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask);
输入参数:
char * pcIP1: 计算机1的IP地址,格式:“192.168.0.254”;
char * pcIP2: 计算机2的IP地址,格式:“192.168.0.1”;
char * pcSubNetworkMask: 子网掩码,格式:“255.255.255.0”;
返回值:
0:IP1与IP2不属于同一子网络;
1:IP1与IP2属于同一子网络;
#include <stdlib.h> #include <string.h> int getIP(char * chpcIP, unsigned int * npcIP) { int i=0; char * temp; int tempCnt = 0; int cnt = 0; int cntIP = 0; int lenIP = strlen(chpcIP); for (i=0;i<=lenIP;i++) { if((chpcIP[i] == '.')||(chpcIP[i] == '\0')) { temp = (char*)malloc(tempCnt*sizeof(char)); memcpy(temp,chpcIP+i-tempCnt,tempCnt); cnt += (tempCnt+1); npcIP[cntIP] = atoi(temp); free(temp); cntIP ++; tempCnt=0; } else { tempCnt ++; } } return 0; } int IsSameSubNetwork(char * pcIp1, char * pcIp2, char * pcSubNetworkMask) { /*在这里实现功能*/ int flag = 1; int i = 0; unsigned int tempIP1[4] ={0}; unsigned int tempIP2[4] ={0}; unsigned int tempMaskIP[4] ={0}; getIP(pcIp1,tempIP1); getIP(pcIp2,tempIP2); getIP(pcSubNetworkMask,tempMaskIP); for (i=0;i<4;i++) { if ((tempIP1[i]&tempMaskIP[i])!=(tempIP2[i]&tempMaskIP[i])) { flag = 0; } } return flag; } int main() { char * pcIP1 = "192.168.12.254"; char * pcIP2 = "192.168.12.3"; char * maskIP = "255.255.255.0"; IsSameSubNetwork(pcIP1, pcIP2, maskIP); return 0; }
相关文章推荐
- 在VM已安装Android4.4 连接小米手环 网络设置
- 位域http://www.nowcoder.com/questionTerminal/853a980f7db14eec87209c6a1e2d99dd
- const修饰的常量值 http://www.nowcoder.com/test/question/done?tid=2198842&qid=15952#summary
- servlet复习(二)HTTP Servlet API
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)
- 析构函数为什么一定写成虚函数的形式 http://blog.sina.com.cn/s/blog_4b146a9c0100sgyg.html
- 12月第1周网络安全报告:境内95.8万主机感染病毒
- 012 MATLAB复杂网络处理入门
- C++析构函数为什么要为虚函数 http://www.cnblogs.com/lixiaohui-ambition/archive/2012/07/13/2589716.html
- 牛客网 http://www.nowcoder.com/test/question/done?tid=2198842&qid=14753#summary
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 手把手入门神经网络系列(2)_74行代码实现手写数字识别
- 香橙派 orangepi 配置WPA2 无线网络
- 神经网络入门
- 网络营销【淘宝宝贝主图】设计思路太原郭文军解说
- HTTP协议之 简易浏览器(3)--转载
- 网络编程基础(2) : 同步非阻塞
- 十五大原理之零三--TCP/IP的三次握手和四次断开原理
- AsyncHttpClient异步任务