コード例 #1
0
ファイル: regress.py プロジェクト: Azaraf/Honeyd
    def AddRoute(self, network, gw):
        """Verifies that the route points to localhost."""
        network = dnet.addr(network)
        gw = dnet.addr(gw)

        router = dnet.route()

        error = 0
        try:
            res = router.delete(network)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot remove route: ", network

        try:
            res = router.add(network, gw)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot add route: ", network
            error = 1

        if error:
            return 1
        else:
            return 0
コード例 #2
0
    def AddRoute(self, network, gw):
        """Verifies that the route points to localhost."""
        network = dnet.addr(network)
        gw = dnet.addr(gw)

        router = dnet.route()

        error = 0
        try:
            res = router.delete(network)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot remove route: ", network

        try:
            res = router.add(network, gw)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot add route: ", network
            error = 1

        if error:
            return 1
        else:
            return 0
コード例 #3
0
ファイル: arch.py プロジェクト: Thomas8753/antinetcut
    def new_read_routes():

        rtlst = []
        def addrt(rt,lst):
            dst,gw = rt
            lst.append(rt)

        r = dnet.route()
        print r.loop(addrt, rtlst)
        return rtlst
コード例 #4
0
ファイル: arch.py プロジェクト: xen0ntr/antinetcut
    def new_read_routes():

        rtlst = []

        def addrt(rt, lst):
            dst, gw = rt
            lst.append(rt)

        r = dnet.route()
        print r.loop(addrt, rtlst)
        return rtlst
コード例 #5
0
ファイル: regress.py プロジェクト: Azaraf/Honeyd
    def RemoveRoute(self, network):
        """Removes the route pointing to localhost."""

        network = dnet.addr(network)
        router = dnet.route()

        error = 0
        try:
            res = router.delete(network)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot remove route: ", network
            error = 1

        if error:
            return 1
        else:
            return 0
コード例 #6
0
    def RemoveRoute(self, network):
        """Removes the route pointing to localhost."""

        network = dnet.addr(network)
        router = dnet.route()

        error = 0
        try:
            res = router.delete(network)
        except OSError:
            if self.debug:
                print >> sys.stderr, "Cannot remove route: ", network
            error = 1

        if error:
            return 1
        else:
            return 0
コード例 #7
0
 def setUp(self):
     self.route = dnet.route()
     self.failUnless(self.route, "couldn't open route handle")
コード例 #8
0
ファイル: test_all.py プロジェクト: pynetwork/pydumbnet
 def setUp(self):
     self.route = dnet.route()
     self.failUnless(self.route, "couldn't open route handle")
コード例 #9
0
ファイル: sender.py プロジェクト: bozakov/H-probe
def gen_probes_raw():
    """ Pre-generate raw Ethernet packets and store these in the 
    array pkts.
    """
    from dpkt.ethernet import Ethernet
    from dpkt.ip import IP
    from dpkt.icmp import ICMP
    
    eth_info = dnet.intf().get_dst(options.net_info['ip_dst'])
    options.net_info['l2_src'] = eth_info['link_addr'].eth
    gw = dnet.route().get(options.net_info['ip_dst'])
    if gw:
        options.net_info['l2_dst'] = dnet.arp().get(gw).eth
    else:   # destination is in the same subnet
        options.net_info['l2_dst'] = dnet.arp().get(options.net_info['ip_dst']).eth


    try:
        icmp_data = ICMP(type=8, data=ICMP.Echo(seq=0, id=0,data = 'H'*(options.plen-ICMP_HDR_LEN-IP_HDR_LEN)))
        ip_data = IP(src=options.net_info['ip_src'].ip, dst=options.net_info['ip_dst'].ip, p=1, data=icmp_data)
        ip_data.len += len(ip_data.data)

        p0 = Ethernet(src=options.net_info['l2_src'], dst=options.net_info['l2_dst'], data=ip_data)
        str_p = str(p0)

        hdr = str_p[:ETHER_HDR_LEN+IP_HDR_LEN]
        pkt = str_p[ETHER_HDR_LEN+IP_HDR_LEN:]
        psize = options.plen + ETHER_HDR_LEN

        # packet and format 
        p = [ hdr, 
              pkt[:2], 
              struct.pack('<H', (0)),                           # p[2] = ICMP checksum
              pkt[4:16], 
              struct.pack('!L', (0) % 0xFFFFFFFF),              # p[4] = sequence number (4 bytes)
              struct.pack('!L', (0) % 0xFFFFFFFF),              # p[5] = slot number (4 bytes)
              pkt[16+4+4:]]                                     # payload

        ck = checksum(''.join(p[1:])) & 0xFFFF                  # calculate initial ICMP cksum
        p[2] = struct.pack('H', (ck))                           # update ICMP cksum

        M_ = sum(struct.unpack('HHHH',''.join(p[4:6])))
        j = 0
        for i in xrange(options.pnum):
            j=long(slottimes[i])
            p[4] = struct.pack('!L', (i) % 0xFFFFFFFF)          # increment 4 byte seq ID in ICMP payload
            p[5] = struct.pack('!L', (j) % 0xFFFFFFFF)          # increment 4 byte slot ID in ICMP payload
            M = sum(struct.unpack('HHHH', ''.join(p[4:6])))
            ck = ck + M_ - M

            p[2] = struct.pack('H', (ck) % 0xFFFF)               # update ICMP cksum
            pkts[i] = ''.join(p)[:PKT_ARRAY_WIDTH]                  # only store first 100 packet bytes 

            M_=M

    except (MemoryError, ValueError):
        ERROR("Not enough memory!",2)
    except KeyboardInterrupt:
        print 'terminated by user.'
        raise SystemExit(-1)

    print 'done.'
    try:
        po = pcap.pcap(options.net_info['eth'])
        return po
    except Exception as e:
        print e
コード例 #10
0
					logger.info("Garbaging route %s (to %s, but unsure)" % (r[1], r[2]))
					try:
						iR.delete(r[1])		# FIXME #BUG #TODO l'interface de dnet ne permet pas de limiter la supression a une interface /!\ tres dangereux
					except Exception:
						logger.exception("Error when garbaging route")


if __name__ == "__main__":
	# Variables
	announcer = {}
	networks = []
	last_announce = last_calc = last_gc = 0
	flag_halt = False
	sock = None

	iR = dnet.route()

	# Creation du logger
	logger = logging.Logger("nsrpd", level=logging.DEBUG)

	try:
		logger.addHandler(logging.handlers.SysLogHandler(address="/dev/log", facility=logging.handlers.SysLogHandler.LOG_DAEMON))
		logger.handlers[-1].setFormatter(logging.Formatter("%(name)s: %(message)s"))
	except Exception:
		pass
	if True:
		logger.addHandler(logging.StreamHandler())
		logger.handlers[-1].setFormatter(logging.Formatter("%(asctime)s %(levelname)-8s %(message)s"))

	# Enregistrement des actions de garbage final
	atexit.register(garbage_collector, True)
コード例 #11
0
ファイル: test.py プロジェクト: zagura/libdnet
 def setUp(self):
     self.route = dnet.route()
     self.assertTrue(self.route, "couldn't open route handle")