A PHP Error was encountered

Severity: 8192

Message: Function create_function() is deprecated

Filename: geshi/geshi.php

Line Number: 4698

Backtrace:

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4698
Function: _error_handler

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 4621
Function: _optimize_regexp_list_tokens_to_string

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 1655
Function: optimize_regexp_list

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2029
Function: optimize_keyword_group

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/geshi/geshi.php
Line: 2168
Function: build_parse_cache

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/libraries/Process.php
Line: 45
Function: parse_code

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/models/Pastes.php
Line: 517
Function: syntax

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/application/controllers/Main.php
Line: 693
Function: getPaste

File: /home/httpd/vhosts/scratchbook.ch/geopaste.scratchbook.ch/index.php
Line: 315
Function: require_once

Re: Traceroute in python - Stikked
From Soiled Iguana, 10 Years ago, written in Python.
This paste is a reply to Traceroute in python from Jessica - go back
Embed
Viewing differences between Traceroute in python and Re: Traceroute in python
import socket
import sys

class TraceRoute(object):
    
    BADDR = "0.0.0.0" # default bind address - (all IPs)
    PORT = 33434 # default port
    ICMP = socket.getprotobyname('icmp')
    UDP = socket.getprotobyname('udp')

    desternation = ""
    ttl = 0 # we inrecement this by one each time.    

    # sockets
    reciever = None
    sender = None

    # finished?
    finished = False

    def __init__(self, desternation):
        self.desternation = socket.gethostbyname(desternation)
        
        self.reciever = socket.socket(socket.AF_INET, socket.SOCK_RAW, self.ICMP)
        self.sender = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, self.UDP)
        
        # bind to reciever so we can listen for replies
        self.reciever.bind((self.BADDR, self.PORT))

    def next_server(self):
        """ Connects to next server 1 hop away from current server (i.e. server[ttl + 1]) """
        if self.finished:
            # we have nothing to do, just return
            return

        # first job increment the ttl on the socket
        self.ttl += 1
        self.sender.setsockopt(socket.SOL_IP, socket.IP_TTL, self.ttl)
        
        self.sender.sendto("", (self.desternation, self.PORT))
        current_server = self.reciever.recvfrom(512)[1][0] # get 512 bytes from the reciever 
        self.display(current_server)

        if current_server == self.desternation:
            self.finished = True

    def display(self, address):
        """ Gets the hostname (if we can) and displays """
        try:
            name = socket.gethostbyaddr(address)[0]
            print "%s) %s (%s)" % (self.ttl, name, address)
        except socket.error:
            # we couldn't - we'll just tell them the IP address
            print "%s) %s" % (self.ttl, address)
        
    def __del__(self):
        """ Be good and close our sockets """
        try:
            self.reciever.close()
        except socket.error:
            # already closed
            pass

        try:
            self.sender.close()
        except socket.error:
            # already closed
            pass

if __name__ == "__main__":
    # lets get the address from the commandline args
    if len(sys.argv) <= 1:
        # nothing been specified
        print "You need to give an address"
        print "%s <server>" % sys.argv[0]
        sys.exit() # we can't do anything.
    
    tracert = TraceRoute(sys.argv[1])
    while not tracert.finished:
        tracert.next_server()
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