解析IP地址信息并返回迭代列表。
ipparser的Python项目详细描述
ipparser
创建ipparser python模块是为了在创建其他安全或网络工具时简化接受ipv4地址、dns名称和目标/主机信息。获取并分析用户输入,以提供可用于迭代的IPv4地址或DNS名称列表。如果使用resolve=True
调用,ipparser将尝试执行“a”记录查找并返回为主机找到的所有IP地址。
输入:
ipparser当前接受以下用户输入:
- 单IP(192.168.1.10)
- IP范围(192.168.1.1-55)
- 多个IP(192.168.1.3192.168.1.7,m8r0wn.com)
- CIDR范围/8-/32(192.168.1.0/24)
- 网址(https://m8r0wn.com/demo)
- IP:端口(192.168.1.1:8080)
- DNS名称(m8r0wn.com)
- TXT文件(包含列出的任何项)
安装
pip3 install ipparser
或
git clone https://github.com/m8r0wn/ipparser
cd ipparser
python3 setup.py install
用法:
可以使用以下参数调用ipparser函数(以默认值显示):
resolve=False
-解析标识的任何dns名称,解析到ipv4地址,并追加到输出。silent=False
-解析时不显示错误。- ^
debug=False
-显示调试的输入分类。
示例
>>>fromipparserimportipparser>>>ipparser('192.168.1.3-5')['192.168.1.3','192.168.1.4','192.168.1.5']>>>ipparser('yahoo.com',resolve=True)['98.138.219.232','98.138.219.231','72.30.35.9','72.30.35.10','98.137.246.7','98.137.246.8']>>>ipparser('example',resolve=True,exit_on_error=False)IPParserError:Invalidorunsupportedinputprovided'example'>>>ipparser('192.168.1.1,yahoo.com')['192.168.1.1','yahoo.com']ipparser('192.168.1.1,yahoo.com,example',resolve=True,exit_on_error=False)IPParserError:Invalidorunsupportedinputprovided'example'['192.168.1.1','98.138.219.231','98.137.246.8','98.137.246.7','72.30.35.9','98.138.219.232','72.30.35.10']>>>ipparser('192.168.1.1,yahoo.com,example',resolve=True,silent=True)['192.168.1.1','72.30.35.10','98.138.219.231','98.137.246.7','98.137.246.8','72.30.35.9','98.138.219.232']
argparse集成
- 标准参数:
fromipparserimportipparserfromargparseimportArgumentParserargs=ArgumentParser(description='ipparser integration with argparse')args.add_argument('-host',dest='host',default=False,type=lambdax:ipparser(x),help='Host Input')args=args.parse_args()
Namespace(host=['192.168.1.1'])
- 必需的位置参数(方法1):
fromipparserimportipparserfromargparseimportArgumentParserargs=ArgumentParser(description='ipparser integration with argparse')args.add_argument(dest='positional_host',nargs='+',type=lambdax:ipparser(x,resolve=False),help='Host Input')args=args.parse_args()
Namespace(positional_host=[['192.168.1.1']])
- 必需的位置参数(方法2):
fromipparserimportipparserfromargparseimportArgumentParserargs=ArgumentParser(description='ipparser integration with argparse')args.add_argument(dest='positional_host',nargs='+',help='Host Input')args=args.parse_args()args.positional_host=ipparser(args.positional_host[0])
positional_host=['192.168.1.1'])
- 允许用户参数确定解析设置:
fromsysimportargvfromipparserimportipparserfromargparseimportArgumentParserr=Falseif"-r"inargv:r=Trueargs=ArgumentParser(description='ipparser integration with argparse')args.add_argument('-r',dest='resolve',action='store_true',help='Resolve input DNS hosts')args.add_argument(dest='positional_host',nargs='+',type=lambdax:ipparser(x,resolve=r),help='Host Input')args=args.parse_args()
sys.argv用法
- 标准参数
fromsysimportargvfromipparserimportipparserif"-host"inargv:host=ipparser(argv[argv.index("-host")+1])
host = ['192.168.1.1']
- 位置参数
fromsysimportargvfromipparserimportipparserhost=ipparser(argv[-1])
host = ['192.168.1.1']