def get_city(addr): aa = os.popen(f"ping {addr}").readlines() for a in aa: print(a) ip = "" if "来自" in (aa[2][:2], aa[3][:2], aa[4][:2], aa[5][:2]): ip = aa[7][:13] cc = datx.City("ipdb.datx") # 在数据库查(更稳定) try: res = cc.find(ip) except ValueError as VE: print(VE) res = ["未知", "未知", "", ""] ## url = f"http://freeapi.ipip.net/{ip}" # 在接口查,需要sleep ## res = requests.get(url).text if "香港" in res: print("获得香港ip:", addr, ip) print() dd = os.popen( f"nslookup -qt=A cbsw-test.fs.ap1.oraclecloud.com {ip}") for d in dd: print(d) else: print("以上ip来自:", "-".join(res), ip, addr) with open("address_get.txt", "a") as ww: ww.write(f"{res[1]}\t") ww.write(f"{addr}\t") ww.write(f"{ip}\t") ww.write(f"{str(datetime.datetime.now())}\n")
def get_data_by_file(ip): data_source = datx.City("./17monipdb.datx") try: result = data_source.find(ip) result.insert(0, ip) return get_all_fields(result, tuple(IPAddress._fields.keys())[0:-2]) except Exception: return
def __init__(self): self.useful_proxy = UsefulProxyDocsModel() self.raw_proxy = RawProxyDocsModel() self.domain_counter = DomainCounterDocsModel() self.datx = datx.City(IP_DATA_PATH) self.quality_useful_proxy_list = [] self.quality_domain_index = {}
def ipip_get_add(ip): cc = datx.City(os.path.join(base_path, "ipdb.datx")) try: res = cc.find(ip) except ValueError as VE: print(VE) # 这里可以做另外的处理,比如从纯真IP数据库里面再找 res = ["unknown", "", "", ""] res = " ".join(res).strip() return res
def main(argv): global file, num try: opts, args = getopt.getopt(argv, "-h-f:-n:", ["help", "file=", "num="]) except getopt.GetoptError: print( "extract.py -f <inputfile> -n <num> to extract suspicious IPs from [port]/[domain] if >= num, defaults:1000" ) sys.exit() for opt_name, opt_value in opts: if opt_name in ('-h', '--help'): print( "extract.py -f <inputfile> -n <num> to extract suspicious IPs from [ports]/[domain] if >= num, defaults:1000" ) sys.exit() elif opt_name in ('-f', '--file'): file = opt_value elif opt_name in ('-n', '--num'): num = int(opt_value) else: print( "extract.py -f <inputfile> -n <num> to extract suspicious IPs from [ports]/[domain] if >= num, defaults:1000" ) result1 = [] result2 = [] str0 = dir0 + '/' + file dbase = datx.City(dir0 + '/IPQuery/' + 'mydata4vipday3.datx') with open(str0, 'r') as f0: for line in f0: rec = json.loads(line.strip()) for key, value in rec.items(): ip = key cnt = len(value) if cnt > num: res = dbase.find(ip) result1.append(line) result2.append(ip + '\t' + str(cnt) + '\t' + res[0] + '\t' + res[1] + '\t' + res[2] + '\t' + res[3] + '\t' + res[4] + '\t' + res[13] + '\n') str1 = dir0 + '/' + 'sus_' + file with open(str1, 'w') as f1: f1.writelines(result1) str2 = dir0 + '/' + 'sus_loc_' + file with open(str2, 'w') as f2: f2.writelines(result2)
def get_ip_mess(ipaddr): # 获取ip区域 try: c = datx.City("/home/app/ipip/mydata4vipday2.datx") mess_ip = (c.find(ipaddr)) county = mess_ip[0] # 输出国家 pro = mess_ip[1] # 输出省份 city = mess_ip[2] # 输出城市 isp = mess_ip[4] # 输出运营商 ip_mess = county + '.' + pro + '.' + city + '.' + isp except: ip_mess = "IP归属地未知" return ip_mess
def IPIP(content): try: code = datx.City('/ipip/ipip.datx') data = code.find(content) country = data[0] region = data[1] city = data[2] isp = data[4] return jsonify(IP=content, country=country, region=region, city=city, isp=isp) except Exception as error: return error
import sys import time import json import base64 import traceback import os import argparse import csv # 禁用安全请求警告 from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) import coloredlogs,logging logger = logging.getLogger(os.path.basename(__file__)) coloredlogs.install(level='INFO',milliseconds=True,fmt='[%(asctime)s] :%(levelname)s: %(message)s') import datx c = datx.City('mydata4vipday3.datx') # FOFA 用户名 fofa_name = '' # FOFA 用户key fofa_key = '' session = requests.session() # 请求头 headers = { 'Upgrade-Insecure-Requests': '1', 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36' } ''' 提取ip位置信息 @param ip ip '''
svrip_file_path = os.path.abspath( os.path.dirname(__file__)) + "/svrip_list.txt" svrip_list = [] with open(svrip_file_path) as f: for eachline in f: if eachline.strip(): svrip_list.append(eachline.strip()) logger.info("svrip_list: %s", svrip_list) client = InfluxDBClient('10.11.0.94', '8086', 'spark', 'spark2018', 'spark') ipdata_file_path = os.path.abspath( os.path.dirname(__file__)) + "/mydata4vipweek2_2018-04-11.datx" #ip_db = datx.City("/opt/work/performance_analysis/mydata4vipweek2_2018-04-11.datx") ip_db = datx.City(ipdata_file_path) def get_ip_info(ip): country = province = city = isp = "unknown" info = ip_db.find(ip) if len(info) > 4: country = info[0] province = info[1] city = info[2] isp_list_str = info[4] if '/' in isp_list_str: if len(isp_list_str.split('/')) > 0: isp = isp_list_str.split('/')[0] else: isp = isp_list_str
import datx c = datx.City("c:/work/tiantexin/17mon/mydata4vipday4.datx") print(c.find("8.8.8.8")) print(c.find("8.8.8.258")) print(c.find("255.255.255.255")) d = datx.District("c:/work/tiantexin/framework/library/ip/quxian.datx") print(d.find("123.181.153.22")) print(d.find("256.181.153.22")) d = datx.BaseStation("c:/work/tiantexin/17mon/station_ip.datx") print(d.find("223.221.121.0"))
# -*- coding: utf-8 -*- import logging import time # import cipip as pyipip logging.basicConfig(level=logging.DEBUG) import datx c = datx.City("/home/momoka/Downloads/17monipdb.datx") logger = logging.getLogger(__name__) s = time.time() # ipip = pyipip.IPIPDatabase('17monipdb.dat') e = time.time() delta = e - s logger.debug('init time cost: %.6f s' % delta) # _ = ipip.lookup('8.8.8.8') # logger.debug(_) counter = 0 s = time.time() loop = 100 for i in range(loop): with open('/home/momoka/src/python/cipip-python/ips.txt') as f: for line in f: ip = line.strip() if not ip: continue
# import os # from ipip import IP # from ipip import IPX # # # IP.load(os.path.abspath("mydata4vipday2.dat")) # print IP.find("118.28.8.8") # # IPX.load(os.path.abspath("mydata4vipday2.datx")) # print IPX.find("118.28.8.8") import MySQLdb import datx # 查询地级市精度的IP库 c = datx.City("mydata4vipweek2.dat") print(c.find("8.8.8.258")) print(c.find("255.255.255.255")) # print(c.find('192.168.101.126')) # # 查询国内区县库 # d = datx.District("/path/to/quxian.datx") # print(d.find("123.121.117.72")) # # # 查询基站IP库 # d = datx.BaseStation("/path/to/station_ip.datx") # print(d.find("223.221.121.0")) """http://ip.taobao.com/service/getIpInfo2.php?ip=""" # # 查询mysql # into_db = ("172.23.15.8", "kuanghao", "kju3kj0d", "utf8","logtest")
def __init__(self): self.useful_proxy = UsefulProxyDocsModel() self.raw_proxy = RawProxyDocsModel() self.datx = datx.City(IP_DATA_PATH)