Пример #1
0
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")
Пример #2
0
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
Пример #3
0
    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 = {}
Пример #4
0
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
Пример #5
0
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)
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #10
0
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"))
Пример #11
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
Пример #12
0
# 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")
Пример #13
0
 def __init__(self):
     self.useful_proxy = UsefulProxyDocsModel()
     self.raw_proxy = RawProxyDocsModel()
     self.datx = datx.City(IP_DATA_PATH)