(1)编写函数convert(), 将字符串表示的IP地址转为为32位无符号整数

(2)编写函数checkip(), 检查ip地址配置是否正确(当ip地址和子网相与(&)的结果,和网关和子网掩码相与的结果相等时,认为配置正确;否则认为不正确;

主函数调用上述函数,完成对输入ip地址/子网掩码/网关ip地址配置的检查。

输入样例1:

输入3个字符串,分别表示主机的ip地址、子网掩码和网关。

192.168.0.1
255.255.255.0
192.168.0.254

输出样例1:

若配置正确,输出YES;否则输出NO (判断规则:当ip地址和子网相与(&)的结果,和网关和子网掩码相与的结果相等时,认为配置正确)

YES

输入样例2:

10.0.10.10
255.255.0.0
10.10.1.1

输出样例2:

NO

代码如下:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>typedef unsigned int U32;unsigned int convert(char s[])
{const char str[2] = ".";char *token = strtok(s,str);int a[4];int i;a[0] = atoi(token);for(i = 1; i < 4; i++){token = strtok(NULL,str);//参数为NULL的时候,该函数默认使用上一次未分割完的字符串的末位置作为起始位置a[i] = atoi(token);}//forunsigned int IP = (a[0] << 24 | a[1] << 16 | a[2] << 8 | a[3]);//有 1 则 1return IP;
}//convertint checkip(int ip,int netmask, int gateway)
{if((ip & netmask) == (netmask & gateway))return 1;elsereturn 0;}//checkipint main()
{char sip[32] = {0};char snt[32] = {0};char sgt[32] = {0};gets(sip);gets(snt);gets(sgt);U32 ip = convert(sip);U32 netmask = convert(snt);U32 gateway = convert(sgt);if(checkip(ip, netmask, gateway)){printf("YES");}else{printf("NO");}return 0;}

IP地址和子网掩码(位运算)相关推荐

  1. 通过IP地址和子网掩码与运算计算相关地址

    知道ip地址和子网掩码后可以算出: 1.网络地址 2.广播地址 3.地址范围 4.本网有几台主机 例1:下面例子IP地址为192·168·100·5子网掩码是255·255·255·0.算出网络地址. ...

  2. 通过IP地址和子网掩码计算相关地址

    通过IP地址和子网掩码与运算计算相关地址     知道ip地址和子网掩码后可以算出: 1. 网络地址 2. 广播地址 3. 地址范围 4. 本网有几台主机 例1:下面例子IP地址为192·168·10 ...

  3. ipv6的127位掩码如何表示_电脑网络:IP地址、子网掩码详解-你们好,做个朋友可好...

    一.IP地址简介 在生活中我们使用具有上网功能的电子设备都有IP地址,就跟每个人都有自己的名字一样.IP地址分为IPV4. IPV6,我们所说的的IP地址指的是IPV4的地址. 只要记住你的名字 不管 ...

  4. 计算机IP地址与子网掩码如何进行AND运算

    源:计算机IP地址与子网掩码如何进行AND运算 转载于:https://www.cnblogs.com/LittleTiger/p/4704732.html

  5. IP地址,子网掩码、默认网关,DNS理论解释

    在网上发现的这篇文章写的非常好,有理论有示例. (一)  问题解析 001.   问:  IP地址,子网掩码,默认网关,DNS服务器,有什么区别呀?我知道没有IP地址就不能上网,我也知道没设DNS就不 ...

  6. IP地址、子网掩码、网关的概念—Vecloud微云

    今天为网络初学者带来IP地址.网关等概念的区分和讲解. 通俗来讲:IP 地址,是标注一台电脑的身份,如同每个人都有的身份证:子网掩码表示所使用的网络属于哪种网络段,两个IP地址同属于一个网段就可以直接 ...

  7. [转帖]IP地址、子网掩码、网络号、主机号、网络地址、主机地址以及ip段/数字-如192.168.0.1/24是什么意思?...

    IP地址.子网掩码.网络号.主机号.网络地址.主机地址以及ip段/数字-如192.168.0.1/24是什么意思? 2016年03月26日 23:38:50 JeanCheng 阅读数:105674  ...

  8. IP地址,子网掩码、默认网关,DNS服务器是什么意思

    IP地址,子网掩码.默认网关,DNS服务器是什么意思 2010-10-30 17:00:34|  分类: 网络基础知识|举报|字号 订阅 下载LOFTER我的照片书  | (一)  问题解析 001. ...

  9. IP地址与子网掩码总结

    一.IP地址与网络分类 1. IP地址  不同的物理网络技术有不同的编址方式:不同物理网络中的主机,有不同的物理网络地址.网间网技术是将不同物理网络技术统一起来的高层软件技术.网间网技术采用一种全局通 ...

最新文章

  1. python3x 中如何使用tkMessageBox
  2. P2216 理想的正方形 单调队列 (二维)
  3. python 2022/1/2
  4. 如何实现科技论文里面的算法
  5. 产品经理的每日反省清单
  6. unity案例 mysql lua_通过Xlua实现unity热更新的一个小例子
  7. 关于“想哭”病毒,我也来两句。--转载
  8. Vue指令_常用vue指令_自定义全局指令_自定义局部指令---vue工作笔记0016
  9. 【DS】About Stack
  10. php数量百分比,mysql PHP行数+百分比
  11. 史上最全 SQL 基础知识语法
  12. pom文件无法加载ojdbc14-10.2.0.4.0.jar
  13. android 经纬度距离计算器,经纬度距离角度计算软件|经纬度距离角度计算器(geography) v2.0免费版_星星软件园...
  14. 【BIM入门实战】Navisworks2018简体中文安装教程(附安装包下载)
  15. 【微信公众号-订阅号发送群发消息】
  16. Triplet-Graph Reasoning Network for few-shot Metal Generic Surface Defect Segmentation论文理解
  17. iOS 四舍六入五成双算法
  18. 笔记本键盘两个ctrl键同时失灵怎么解决?
  19. php北京平均工资,2016年北京平均工资是多少?
  20. 《漫游》之《云依柳俏》

热门文章

  1. LAN口和WAN口的区别是什么?
  2. OA系统如何实现云端化运行?
  3. Nginx+rtmp+ffmpeg搭建视频转码服务
  4. html中时间long型转换,html5日期转long
  5. 数据分析:同期群分析
  6. 极米 H6 4K 版投影仪 评测
  7. 基于Linux开源VOIP系统LinPhone[六]
  8. 杨老师课堂_Java教程第五篇之函数运用
  9. 第二十八节:隧道代理阿布云代理
  10. Linux显示文件目录分屏显示,Linux-作业1(文件和目录操作题目)