博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python脚本简单检测ip合法性并添加到白名单文件
阅读量:7037 次
发布时间:2019-06-28

本文共 1493 字,大约阅读时间需要 4 分钟。

一、功能说明

       有时候项目需要通过ip地址来判定是否允许访问,通常通过一个白名单地址文件来存放这些允许放行的ip,但每次打开文件编辑比较麻烦,容易出错,也不知道是否添加过,故用python写了一个自动添加白名单的脚本。

二、脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env python
#coding:utf-8
#2017-06-09 ver:1.0
import 
sys
white_list
=
"white_list.txt"
add_ip
=
sys.argv[
1
].strip()
checkIp
=
add_ip.split(
'.'
)
if 
len
(checkIp)!
= 
4
:
  
print
(
"ip[长度]不合法.程序退出!"
)
  
sys.exit(
5
)
elif 
not 
checkIp[
0
].isdigit() 
or 
not  
checkIp[
1
].isdigit() 
or 
not  
checkIp[
2
].isdigit() 
or 
not  
checkIp[
3
].isdigit():
  
print
(
"ip[不是数字]不合法.程序退出!"
)
  
sys.exit(
5
)
elif 
int
(checkIp[
0
]) >
= 
254 
or 
int
(checkIp[
1
]) > 
255 
or 
int
(checkIp[
2
]) >
255  
or 
int
(checkIp[
3
]) >
255
:
  
print
(
"ip[数字范围]不合法.程序退出!"
)
  
sys.exit(
5
)
 
new_ip 
= 
str
(add_ip 
+ 
"\n"
)
f
=
open
(white_list,
'r'
)
IPS
=
f.readlines()
if 
new_ip 
in 
IPS:
  
print 
"The add ip %s is in white list." 
% 
new_ip.split()
else
:
  
fw
=
open
(white_list,
'a+'
)
  
fw.write(new_ip)
  
print 
"The add ip %s add in white list OK~" 
% 
new_ip.split()
  
fw.close()

三、执行结果

$ ./add_white.py 192.168.1.256

ip[数字范围]不合法.程序退出!
$ ./add_white.py 256.0.0..
ip[长度]不合法.程序退出!
$ ./add_white.py afdafda
ip[长度]不合法.程序退出!
$ ./add_white.py a.a.a.a
ip[不是数字]不合法.程序退出!
$ ./add_white.py 192.1.1
ip[长度]不合法.程序退出!
$ ./add_white.py 192.168.1.2
The add ip ['192.168.1.2'] add in white list OK~
]$ ./add_white.py 192.168.1.2
The add ip ['192.168.1.2'] is in white list.
写的比较简单,有不当之处欢迎指正交流~

本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1943298,如需转载请自行联系原作者
你可能感兴趣的文章
我的友情链接
查看>>
windows系统之WSUS服务器:更改WSUS更新文件的路径
查看>>
Btrace
查看>>
我的友情链接
查看>>
python抓取豆瓣妹子图片并上传到七牛
查看>>
关于Spring Data redis几种对象序列化的比较
查看>>
windows下批处理设置U盘盘符为U【非PE】
查看>>
Windows系统补丁KB2962872导致InstallShield无法启动(解决方案已更新)
查看>>
#每天问自己个问题#0. 每天问自己个问题
查看>>
制作免费的数字签名证书
查看>>
nagios3.3 监控端安装记录
查看>>
linux下拆分文件split
查看>>
BoCloud博云获得CNCF Kubernetes服务提供商认证
查看>>
WebApp 页面自适应
查看>>
【转自中科蓝鲸】集群NAS与集群文件系统的区别
查看>>
tigase网络核心SockThread详解
查看>>
iotop 查看进程IO情况
查看>>
php获取网站域名 及 SERVER 相关变量
查看>>
如何搭建springboot + mybatis(一)
查看>>
sphinx学习(六)基本配置 common settings
查看>>