ptr-db/bin/ptr-import.py

42 lines
1.3 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# Tool to import and index PTR records
#
# Software is free software released under the "Modified BSD license"
#
# Copyright (c) 2013-2014 Alexandre Dulaunoy - a@foo.be
import redis
import argparse
argParser = argparse.ArgumentParser(description='ptr-db: Import and Index PTR records')
argParser.add_argument('-r', action='append', help='Input file in IP,PTR format')
argParser.add_argument('-v', action='store_true', default=False, help='Output inserted PTR records')
args = argParser.parse_args()
def terms(host=None):
if host is None:
return False
p = host.split('.')
return p
# LevelDB backend using Redis protocol https://github.com/KDr2/redis-leveldb
r = redis.StrictRedis(host='localhost', port=8323)
if args.r:
for x in args.r:
with open(x, encoding='UTF-8', errors='ignore') as f:
for l in f:
try:
(ip, ptr) = l.rstrip().split(',')[:2]
if args.v:
print(terms(ptr))
r.set(ip,ptr)
except ValueError:
if args.v:
print("PTR tuple missing")
pass
else:
argParser.print_help()
exit(1)