题目描述

从业 666 年的 BILIBILI 网络安全工程师 KindMo 最近很困惑,公司有一个业务总是受到 SSRF 攻击。请帮他写一个程序,判断输入的字符串是否属于内网IP,用于防御该漏洞。
我们知道常见的内网IP有,127.0.0.1,192.168.0.1 等。

输入描述:

每次输入仅包含一个IP字符串,即一个测试样例

输出描述:

对于每个测试实例输出整数1或0,1代表True,即输入属于内网IP,0代表False,即输入不属于内网IP或不是IP字符串。
示例1

输入

42.96.146.169

输出

0

第一道编程复健题,目前我会的语言有C++、JAVA、Python和Javascript,虽然不打算用Js做编程题,但是都可以顺手练一下。看了Python版本的答案真的很简洁!!爱了!

 

Python:

if input()[:3] in ('127','192','10.','172'): print(1)
else: print(0)

C++:

#include<iostream>
using namespace std;

int main(){
    int ip[4];
    scanf("%d.%d.%d.%d",&ip[0],&ip[1],&ip[2],&ip[3]);
    if( ip[0] == 127 || (ip[0] == 192 && ip[1] == 168) || ip[0] == 10 || (ip[0] == 172 && ip[1] >= 16 && ip[1]<=32 ) )
        printf("1");
    else printf("0");
}

 


0 条评论

发表评论

Avatar placeholder