def sendPacket(icmp, udp, ttl, dest_name): port = 33434 recv_socket = socket.socket(socket.AF_INET, socket.SOCK_RAW, icmp) send_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, udp) send_socket.setsockopt(socket.SOL_IP, socket.IP_TTL, ttl) send_socket.settimeout(3.0) recv_socket.settimeout(4.0) recv_socket.bind(("", port)) start_time = time.time() send_socket.sendto("", (dest_name, port)) curr_addr = None curr_name = None try: _, curr_addr = recv_socket.recvfrom(512) latency = (time.time() - start_time) * 1000 curr_addr = curr_addr[0] try: curr_name = socket.gethostbyaddr(curr_addr)[0] except socket.error: curr_name = curr_addr except socket.error: print "%d\t%s\t%s" % (ttl, '*', '*') return "unavaible" finally: send_socket.close() recv_socket.close() if curr_addr is not None: curr_host = "%s (%s)" % (curr_name, curr_addr) else: curr_host = "*" print "{:d}\t{:f}ms\t{:70s}".format(ttl, latency, curr_host), print "%s" % (geoip.geoip(curr_addr)) return curr_addr
def menu_online(menu_option): hostname = input('Host: ') while True: clear() banner() print(''' [1] whois [2] geoip [3] portscan [4] change host [5] back [6] exit\n''') print('[X]: {}'.format(hostname).ljust(80, ' ')) print('Development version in: {} '.format(VERSION).rjust(80, ' ')) print('-'.rjust(80, '-')) menu_option = input('Choose: ') if menu_option == '1': whois.whois(hostname) back = input('\nPress <enter> to return') elif menu_option == '2': geoip.geoip(hostname) back = input('\nPress <enter> to return') elif menu_option == '3': portscan.portscan(hostname) back = input('\nPress <enter> to return') elif menu_option == '4': hostname = input('Host: ') elif menu_option == '5': print('\nReturning...') sleep(0.9) menu_splash(menu_option) elif menu_option == '6': exit() else: print('Invalid option.') sleep(0.9)
#! /usr/bin/python3.1 # Try to detect a spamming bot from an apache log... import sys import apparser import os.path import io import geoip p = apparser.apparser() g = geoip.geoip('geoip.sqlite') files = {} if not len(sys.argv) == 2: sys.stderr.write('Syntax: %s <apache logfile>' % sys.argv[0]) exit() if not os.path.exists(sys.argv[1]): sys.stderr.write('file %s does not exist' % sys.argv[1]) exit() fd = io.open(sys.argv[1]) i = 0 import collections posts = collections.defaultdict(dict) uris = collections.defaultdict(dict) while True: i += 1 line = fd.readline() if line == '': # EOF break line = line.rstrip('\n') if p.feed(line) == False: # sys.stderr.write('PARSE ERROR (%d): %s\n' % (i, line))