Changeset 887:0986d0178351
- Timestamp:
- 08/28/08 13:26:31
(4 months ago)
- Author:
- Phil <phil@secdev.org>
- Message:
Added repr() to supersockets
-
Files:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
| r885 |
r887 |
|
| 211 | 211 | |
|---|
| 212 | 212 | class L3PacketSocket(SuperSocket): |
|---|
| | 213 | desc = "read/write packets at layer 3 using Linux PF_PACKET sockets" |
|---|
| 213 | 214 | def __init__(self, type = ETH_P_ALL, filter=None, promisc=None, iface=None, nofilter=0): |
|---|
| 214 | 215 | self.type = type |
|---|
| … | … | |
| 308 | 309 | |
|---|
| 309 | 310 | class L2Socket(SuperSocket): |
|---|
| | 311 | desc = "read/write packets at layer 2 using Linux PF_PACKET sockets" |
|---|
| 310 | 312 | def __init__(self, iface = None, type = ETH_P_ALL, filter=None, nofilter=0): |
|---|
| 311 | 313 | if iface is None: |
|---|
| … | … | |
| 352 | 354 | |
|---|
| 353 | 355 | class L2ListenSocket(SuperSocket): |
|---|
| | 356 | desc = "read packets at layer 2 using Linux PF_PACKET sockets" |
|---|
| 354 | 357 | def __init__(self, iface = None, type = ETH_P_ALL, promisc=None, filter=None, nofilter=0): |
|---|
| 355 | 358 | self.type = type |
|---|
| r885 |
r887 |
|
| 72 | 72 | |
|---|
| 73 | 73 | class L2pcapListenSocket(SuperSocket): |
|---|
| | 74 | desc = "read packets at layer 2 using libpcap" |
|---|
| 74 | 75 | def __init__(self, iface = None, type = ETH_P_ALL, promisc=None, filter=None): |
|---|
| 75 | 76 | self.type = type |
|---|
| … | … | |
| 159 | 160 | if conf.use_pcap and conf.use_dnet: |
|---|
| 160 | 161 | class L3dnetSocket(SuperSocket): |
|---|
| | 162 | desc = "read/write packets at layer 3 using libdnet and libpcap" |
|---|
| 161 | 163 | def __init__(self, type = ETH_P_ALL, filter=None, promisc=None, iface=None, nofilter=0): |
|---|
| 162 | 164 | self.iflist = {} |
|---|
| … | … | |
| 235 | 237 | |
|---|
| 236 | 238 | class L2dnetSocket(SuperSocket): |
|---|
| | 239 | desc = "read/write packets at layer 2 using libdnet and libpcap" |
|---|
| 237 | 240 | def __init__(self, iface = None, type = ETH_P_ALL, filter=None, nofilter=0): |
|---|
| 238 | 241 | if iface is None: |
|---|
| r862 |
r887 |
|
| 156 | 156 | |
|---|
| 157 | 157 | class BluetoothL2CAPSocket(SuperSocket): |
|---|
| | 158 | desc = "read/write packets on a connected L2CAP socket" |
|---|
| 158 | 159 | def __init__(self, peer): |
|---|
| 159 | 160 | s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW, |
|---|
| … | … | |
| 168 | 169 | |
|---|
| 169 | 170 | class BluetoothHCISocket(SuperSocket): |
|---|
| | 171 | desc = "read/write on a BlueTooth HCI socket" |
|---|
| 170 | 172 | def __init__(self, iface=0x10000, type=None): |
|---|
| 171 | 173 | s = socket.socket(socket.AF_BLUETOOTH, socket.SOCK_RAW, socket.BTPROTO_HCI) |
|---|
| r885 |
r887 |
|
| 10 | 10 | from data import * |
|---|
| 11 | 11 | |
|---|
| | 12 | class _SuperSocket_metaclass(type): |
|---|
| | 13 | def __repr__(self): |
|---|
| | 14 | if self.desc is not None: |
|---|
| | 15 | return "<%s: %s>" % (self.__name__,self.desc) |
|---|
| | 16 | else: |
|---|
| | 17 | return "<%s>" % self.__name__ |
|---|
| | 18 | |
|---|
| 12 | 19 | |
|---|
| 13 | 20 | class SuperSocket: |
|---|
| | 21 | __metaclass__ = _SuperSocket_metaclass |
|---|
| | 22 | desc = None |
|---|
| 14 | 23 | closed=0 |
|---|
| 15 | 24 | def __init__(self, family=socket.AF_INET,type=socket.SOCK_STREAM, proto=0): |
|---|
| … | … | |
| 39 | 48 | self.outs.bind(addr) |
|---|
| 40 | 49 | |
|---|
| 41 | | |
|---|
| 42 | 50 | class L3RawSocket(SuperSocket): |
|---|
| | 51 | desc = "Layer 3 using Raw sockets (PF_INET/SOCK_RAW)" |
|---|
| 43 | 52 | def __init__(self, type = ETH_P_IP, filter=None, iface=None, promisc=None, nofilter=0): |
|---|
| 44 | 53 | self.outs = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW) |
|---|
| … | … | |
| 56 | 65 | |
|---|
| 57 | 66 | class SimpleSocket(SuperSocket): |
|---|
| | 67 | desc = "wrapper arround a classic socket" |
|---|
| 58 | 68 | def __init__(self, sock): |
|---|
| 59 | 69 | self.ins = sock |
|---|
| … | … | |
| 62 | 72 | |
|---|
| 63 | 73 | class StreamSocket(SimpleSocket): |
|---|
| | 74 | desc = "transforms a stream socket into a layer 2" |
|---|
| 64 | 75 | def __init__(self, sock, basecls=Raw): |
|---|
| 65 | 76 | SimpleSocket.__init__(self, sock) |
|---|