Python socket.inet_ntop() Examples
The following are 30
code examples of socket.inet_ntop().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
socket
, or try the search function
.
Example #1
Source File: z_server.py From z-ssl-proxy with Apache License 2.0 | 7 votes |
def socket5proxy(self): try: sock = self.connection addrtype = ord(sock.recv(1)) if addrtype > 4: return addrtype if addrtype == 1: addr = socket.inet_ntoa(self.rfile.read(4)) elif addrtype == 3: addr = self.rfile.read(ord(sock.recv(1))) elif addrtype == 4: addr = socket.inet_ntop(socket.AF_INET6,self.rfile.read(16)) else: # not support logging.warn('addr_type not support') return port = struct.unpack('>H', self.rfile.read(2)) try: logging.info('connecting %s:%d' % (addr, port[0])) remote = socket.create_connection((addr, port[0])) except socket.error, e: logging.warn(e) return self.handle_socket5(sock, remote)
Example #2
Source File: protocols.py From aiosocks with Apache License 2.0 | 6 votes |
def read_address(self): atype = await self.read_response(1) if atype[0] == c.SOCKS5_ATYP_IPv4: addr = socket.inet_ntoa((await self.read_response(4))) elif atype[0] == c.SOCKS5_ATYP_DOMAIN: length = await self.read_response(1) addr = await self.read_response(ord(length)) elif atype[0] == c.SOCKS5_ATYP_IPv6: addr = await self.read_response(16) addr = socket.inet_ntop(socket.AF_INET6, addr) else: raise InvalidServerReply('SOCKS5 proxy server sent invalid data') port = await self.read_response(2) port = struct.unpack('>H', port)[0] return addr, port
Example #3
Source File: test_socket.py From ironpython2 with Apache License 2.0 | 6 votes |
def testStringToIPv6(self): try: from socket import inet_ntop, AF_INET6, has_ipv6 if not has_ipv6: self.skipTest('IPv6 not available') except ImportError: self.skipTest('could not import needed symbols from socket') f = lambda a: inet_ntop(AF_INET6, a) self.assertEqual('::', f('\x00' * 16)) self.assertEqual('::1', f('\x00' * 15 + '\x01')) self.assertEqual( 'aef:b01:506:1001:ffff:9997:55:170', f('\x0a\xef\x0b\x01\x05\x06\x10\x01\xff\xff\x99\x97\x00\x55\x01\x70') ) # XXX The following don't test module-level functionality...
Example #4
Source File: utils.py From ivre with GNU General Public License v3.0 | 6 votes |
def bin2ip(ipval): """Converts a 16-bytes binary blob to an IPv4 or IPv6 standard representation. See ip2bin(). """ try: socket.inet_aton(ipval) return ipval except (TypeError, socket.error): pass try: socket.inet_pton(socket.AF_INET6, ipval) return ipval except (TypeError, socket.error): pass try: return int2ip(ipval) except TypeError: pass if ipval[:12] == b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff': return socket.inet_ntoa(ipval[12:]) return socket.inet_ntop(socket.AF_INET6, ipval)
Example #5
Source File: utils_net.py From avocado-vt with GNU General Public License v2.0 | 6 votes |
def canonicalize(self, ip_str): """ Parse an IP string for listen to IPAddress content. """ try: if ':' in ip_str: self.version = 'ipv6' if '%' in ip_str: ip_str, scope = ip_str.split('%') self.scope = int(scope) self.packed_addr = socket.inet_pton(socket.AF_INET6, ip_str) self.addr = socket.inet_ntop(socket.AF_INET6, self.packed_addr) else: self.version = 'ipv4' self.packed_addr = socket.inet_pton(socket.AF_INET, ip_str) self.addr = socket.inet_ntop(socket.AF_INET, self.packed_addr) except socket.error as detail: if 'illegal IP address' in str(detail): self.addr = ip_str self.version = 'hostname'
Example #6
Source File: test_socket.py From oss-ftp with MIT License | 6 votes |
def testStringToIPv6(self): try: from socket import inet_ntop, AF_INET6, has_ipv6 if not has_ipv6: self.skipTest('IPv6 not available') except ImportError: self.skipTest('could not import needed symbols from socket') f = lambda a: inet_ntop(AF_INET6, a) self.assertEqual('::', f('\x00' * 16)) self.assertEqual('::1', f('\x00' * 15 + '\x01')) self.assertEqual( 'aef:b01:506:1001:ffff:9997:55:170', f('\x0a\xef\x0b\x01\x05\x06\x10\x01\xff\xff\x99\x97\x00\x55\x01\x70') ) # XXX The following don't test module-level functionality...
Example #7
Source File: interface.py From XFLTReaT with MIT License | 6 votes |
def freebsd_set_ip_address(self, dev, ip, serverip, netmask): sockfd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: #set ip, serverip and netmask ifaliasreq = struct.pack('<16sBBHI8sBBHI8sBBHI8sI', self.iface_name, 16, socket.AF_INET, 0, struct.unpack('<I', socket.inet_aton(ip))[0], '\x00'*8, 16, socket.AF_INET, 0, struct.unpack('<I', socket.inet_aton(serverip))[0], '\x00'*8, 16, socket.AF_INET, 0, struct.unpack('<I', socket.inet_aton('255.255.255.255'))[0], '\x00'*8, 0) fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCAIFADDR, ifaliasreq) # get flags ifr = struct.pack('<16sh', self.iface_name, 0) flags = struct.unpack('<16sh', fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCGIFFLAGS, ifr))[1] # set new flags flags = flags | self.IOCTL_FREEBSD_IFF_UP ifr = struct.pack('<16sh', self.iface_name, flags) # iface up fcntl.ioctl(sockfd, self.IOCTL_FREEBSD_SIOCSIFFLAGS, ifr) except Exception as e: common.internal_print("Something went wrong with setting up the interface.", -1) print(e) sys.exit(-1) # adding new route for forwarding packets properly. integer_ip = struct.unpack(">I", socket.inet_pton(socket.AF_INET, serverip))[0] rangeip = socket.inet_ntop(socket.AF_INET, struct.pack(">I", integer_ip & ((2**int(netmask))-1)<<32-int(netmask))) ps = subprocess.Popen(["route", "add", "-net", rangeip+"/"+netmask, serverip], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, stderr) = ps.communicate() if stderr: if not "File exists" in stderr: common.internal_print("Error: adding client route: {0}".format(stderr), -1) sys.exit(-1) return
Example #8
Source File: interface.py From XFLTReaT with MIT License | 6 votes |
def mac_set_ip_address(self, dev, ip, serverip, netmask): ifr = struct.pack('<16sBBHIIIBBHIIIBBHIII', self.iface_name, 16, socket.AF_INET, 0, struct.unpack('<L', socket.inet_pton(socket.AF_INET, ip))[0], 0, 0, 16, socket.AF_INET, 0, struct.unpack('<L', socket.inet_pton(socket.AF_INET, serverip))[0], 0, 0, 16, 0, 0, struct.unpack('<L', socket.inet_pton(socket.AF_INET, "255.255.255.255"))[0], 0, 0) try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) fcntl.ioctl(sock, self.IOCTL_MACOSX_SIOCAIFADDR, ifr) except Exception as e: common.internal_print("Something went wrong with setting up the interface.", -1) print(e) sys.exit(-1) # adding new route for forwarding packets properly. integer_ip = struct.unpack(">I", socket.inet_pton(socket.AF_INET, serverip))[0] rangeip = socket.inet_ntop(socket.AF_INET, struct.pack(">I", integer_ip & ((2**int(netmask))-1)<<32-int(netmask))) ps = subprocess.Popen(["route", "add", "-net", rangeip+"/"+netmask, serverip], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, stderr) = ps.communicate() if stderr: if not "File exists" in stderr: common.internal_print("Error: adding client route: {0}".format(stderr), -1) sys.exit(-1) return
Example #9
Source File: interface.py From XFLTReaT with MIT License | 6 votes |
def lin_set_ip_address(self, dev, ip, serverip, netmask): sockfd = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: # set IP ifr = struct.pack('<16sH2s4s8s', dev, socket.AF_INET, "\x00"*2, socket.inet_aton(ip), "\x00"*8) fcntl.ioctl(sockfd, self.IOCTL_LINUX_SIOCSIFADDR, ifr) # get flags ifr = struct.pack('<16sh', dev, 0) flags = struct.unpack('<16sh', fcntl.ioctl(sockfd, self.IOCTL_LINUX_SIOCSIFFLAGS, ifr))[1] # set new flags flags = flags | self.IOCTL_LINUX_IFF_UP ifr = struct.pack('<16sh', dev, flags) # iface up fcntl.ioctl(sockfd, self.IOCTL_LINUX_SIOCSIFFLAGS, ifr) except Exception as e: common.internal_print("Something went wrong with setting up the interface.", -1) print(e) sys.exit(-1) # adding new route for forwarding packets properly. integer_ip = struct.unpack(">I", socket.inet_pton(socket.AF_INET, serverip))[0] rangeip = socket.inet_ntop(socket.AF_INET, struct.pack(">I", integer_ip & ((2**int(netmask))-1)<<32-int(netmask))) integer_netmask = struct.pack(">I", ((2**int(netmask))-1)<<32-int(netmask)) netmask = socket.inet_ntoa(integer_netmask) ps = subprocess.Popen(["route", "add", "-net", rangeip, "netmask", netmask, "dev", dev], stdout=subprocess.PIPE, stderr=subprocess.PIPE) (stdout, stderr) = ps.communicate() if stderr: if not "File exists" in stderr: common.internal_print("Error: adding client route: {0}".format(stderr), -1) sys.exit(-1) return
Example #10
Source File: test_socket.py From BinderFilter with MIT License | 6 votes |
def testStringToIPv6(self): if not hasattr(socket, 'inet_ntop'): return # No inet_ntop() on this platform try: from socket import inet_ntop, AF_INET6, has_ipv6 if not has_ipv6: return except ImportError: return f = lambda a: inet_ntop(AF_INET6, a) self.assertEqual('::', f('\x00' * 16)) self.assertEqual('::1', f('\x00' * 15 + '\x01')) self.assertEqual( 'aef:b01:506:1001:ffff:9997:55:170', f('\x0a\xef\x0b\x01\x05\x06\x10\x01\xff\xff\x99\x97\x00\x55\x01\x70') ) # XXX The following don't test module-level functionality...
Example #11
Source File: parser_modules.py From flowanalyzer with BSD 3-Clause "New" or "Revised" License | 6 votes |
def parse_ipv6( self, packed_data, # type: struct pointer, # type: int field_size # type: int ): """ Unpack an IPv6 address Args: packed_data (struct): Packed data pointer (int): Current unpack location field_size (int): Length of data to unpack Returns: str: IPv4 address """ payload = self.socket.inet_ntop(self.socket.AF_INET6,packed_data[pointer:pointer+field_size]) return payload ### Generic MAC Address Parsers ###
Example #12
Source File: common.py From shadowsocksr with Apache License 2.0 | 5 votes |
def test_inet_conv(): ipv4 = b'8.8.4.4' b = inet_pton(socket.AF_INET, ipv4) assert inet_ntop(socket.AF_INET, b) == ipv4 ipv6 = b'2404:6800:4005:805::1011' b = inet_pton(socket.AF_INET6, ipv6) assert inet_ntop(socket.AF_INET6, b) == ipv6
Example #13
Source File: common.py From shadowsocksr with Apache License 2.0 | 5 votes |
def inet_ntop(family, ipstr): if family == socket.AF_INET: return to_bytes(socket.inet_ntoa(ipstr)) elif family == socket.AF_INET6: import re v6addr = ':'.join(('%02X%02X' % (ord(i), ord(j))).lstrip('0') for i, j in zip(ipstr[::2], ipstr[1::2])) v6addr = re.sub('::+', '::', v6addr, count=1) return to_bytes(v6addr)
Example #14
Source File: socks.py From HTTPAceProxy with GNU General Public License v3.0 | 5 votes |
def _read_SOCKS5_address(self, file): atyp = self._readall(file, 1) if atyp == b"\x01": addr = socket.inet_ntoa(self._readall(file, 4)) elif atyp == b"\x03": length = self._readall(file, 1) addr = self._readall(file, ord(length)) elif atyp == b"\x04": addr = socket.inet_ntop(socket.AF_INET6, self._readall(file, 16)) else: raise GeneralProxyError("SOCKS5 proxy server sent invalid data") port = struct.unpack(">H", self._readall(file, 2))[0] return addr, port
Example #15
Source File: asyncdns.py From shadowsocksr with Apache License 2.0 | 5 votes |
def parse_ip(addrtype, data, length, offset): if addrtype == QTYPE_A: return socket.inet_ntop(socket.AF_INET, data[offset:offset + length]) elif addrtype == QTYPE_AAAA: return socket.inet_ntop(socket.AF_INET6, data[offset:offset + length]) elif addrtype in [QTYPE_CNAME, QTYPE_NS]: return parse_name(data, offset)[1] else: return data[offset:offset + length]
Example #16
Source File: connection.py From serfclient-py with MIT License | 5 votes |
def _decode_addr_key(self, obj_dict): """ Callback function to handle the decoding of the 'Addr' field. Serf msgpack 'Addr' as an IPv6 address, and the data needs to be unpack using socket.inet_ntop(). See: https://github.com/KushalP/serfclient-py/issues/20 :param obj_dict: A dictionary containing the msgpack map. :return: A dictionary with the correct 'Addr' format. """ key = b'Addr' if key in obj_dict: try: # Try to convert a packed IPv6 address. # Note: Call raises ValueError if address is actually IPv4. ip_addr = socket.inet_ntop(socket.AF_INET6, obj_dict[key]) # Check if the address is an IPv4 mapped IPv6 address: # ie. ::ffff:xxx.xxx.xxx.xxx if ip_addr.startswith('::ffff:'): ip_addr = ip_addr.lstrip('::ffff:') obj_dict[key] = ip_addr.encode('utf-8') except ValueError: # Try to convert a packed IPv4 address. ip_addr = socket.inet_ntop(socket.AF_INET, obj_dict[key]) obj_dict[key] = ip_addr.encode('utf-8') return obj_dict
Example #17
Source File: __init__.py From wstan with MIT License | 5 votes |
def parse_socks_addr(dat, allow_remain=False): """Extract address and port from SOCKS request header (only 4 parts: RSV(0x00) | ATYP | DST.ADDR | DST.PORT). The header will be reused in tunnel server.""" if not dat or dat[0] != 0x00: raise ValueError try: atyp = dat[1] if atyp == 0x01: # IPv4 port_idx = 6 target_addr = socket.inet_ntoa(dat[2:port_idx]) elif atyp == 0x03: # domain name port_idx = 3 + dat[2] target_addr = dat[3:port_idx].decode('ascii') elif atyp == 0x04: # IPv6 port_idx = 18 target_addr = socket.inet_ntop(socket.AF_INET6, dat[2:port_idx]) else: raise ValueError target_port = struct.unpack('>H', dat[port_idx:port_idx+2])[0] if allow_remain: return target_addr, target_port, port_idx + 2 else: if dat[port_idx+2:]: raise ValueError return target_addr, target_port except (IndexError, struct.error): raise ValueError
Example #18
Source File: common.py From shadowsocksr with Apache License 2.0 | 5 votes |
def patch_socket(): if not hasattr(socket, 'inet_pton'): socket.inet_pton = inet_pton if not hasattr(socket, 'inet_ntop'): socket.inet_ntop = inet_ntop
Example #19
Source File: test_socket.py From BinderFilter with MIT License | 5 votes |
def testStringToIPv4(self): if not hasattr(socket, 'inet_ntop'): return # No inet_ntop() on this platform from socket import inet_ntoa as f, inet_ntop, AF_INET g = lambda a: inet_ntop(AF_INET, a) self.assertEqual('1.0.1.0', f('\x01\x00\x01\x00')) self.assertEqual('170.85.170.85', f('\xaa\x55\xaa\x55')) self.assertEqual('255.255.255.255', f('\xff\xff\xff\xff')) self.assertEqual('1.2.3.4', f('\x01\x02\x03\x04')) self.assertEqual('1.0.1.0', g('\x01\x00\x01\x00')) self.assertEqual('170.85.170.85', g('\xaa\x55\xaa\x55')) self.assertEqual('255.255.255.255', g('\xff\xff\xff\xff'))
Example #20
Source File: updates.py From abusehelper with MIT License | 5 votes |
def parse_ip(value): for addr_type in (socket.AF_INET, socket.AF_INET6): try: return socket.inet_ntop(addr_type, socket.inet_pton(addr_type, value)) except (ValueError, socket.error): pass return None
Example #21
Source File: vxvaultbot.py From abusehelper with MIT License | 5 votes |
def i_am_a_name(string): for addr_type in (socket.AF_INET, socket.AF_INET6): try: socket.inet_ntop(addr_type, socket.inet_pton(addr_type, string)) except (ValueError, socket.error): pass else: return False return True
Example #22
Source File: socks.py From Google-Alfred3-Workflow with MIT License | 5 votes |
def _read_SOCKS5_address(self, file): atyp = self._readall(file, 1) if atyp == b"\x01": addr = socket.inet_ntoa(self._readall(file, 4)) elif atyp == b"\x03": length = self._readall(file, 1) addr = self._readall(file, ord(length)) elif atyp == b"\x04": addr = socket.inet_ntop(socket.AF_INET6, self._readall(file, 16)) else: raise GeneralProxyError("SOCKS5 proxy server sent invalid data") port = struct.unpack(">H", self._readall(file, 2))[0] return addr, port
Example #23
Source File: socks.py From Google-Alfred3-Workflow with MIT License | 5 votes |
def _write_SOCKS5_address(self, addr, file): """ Return the host and port packed for the SOCKS5 protocol, and the resolved address as a tuple object. """ host, port = addr proxy_type, _, _, rdns, username, password = self.proxy family_to_byte = {socket.AF_INET: b"\x01", socket.AF_INET6: b"\x04"} # If the given destination address is an IP address, we'll # use the IP address request even if remote resolving was specified. # Detect whether the address is IPv4/6 directly. for family in (socket.AF_INET, socket.AF_INET6): try: addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port except socket.error: continue # Well it's not an IP number, so it's probably a DNS name. if rdns: # Resolve remotely host_bytes = host.encode('idna') file.write(b"\x03" + chr(len(host_bytes)).encode() + host_bytes) else: # Resolve locally addresses = socket.getaddrinfo(host, port, socket.AF_UNSPEC, socket.SOCK_STREAM, socket.IPPROTO_TCP, socket.AI_ADDRCONFIG) # We can't really work out what IP is reachable, so just pick the # first. target_addr = addresses[0] family = target_addr[0] host = target_addr[4][0] addr_bytes = socket.inet_pton(family, host) file.write(family_to_byte[family] + addr_bytes) host = socket.inet_ntop(family, addr_bytes) file.write(struct.pack(">H", port)) return host, port
Example #24
Source File: z_server.py From z-ssl-proxy with Apache License 2.0 | 5 votes |
def tcpproxy(self, addrtype): self.tcpruning = True try: sock = self.connection if addrtype == 8: self.remote = TCP_CLIENTS.handleproxy(self) if self.remote: self.handle_TCP() return elif addrtype == 5: addr = socket.inet_ntoa(self.rfile.read(4)) elif addrtype == 6: addr = self.rfile.read(ord(sock.recv(1))) elif addrtype == 7: addr = socket.inet_ntop(socket.AF_INET6,self.rfile.read(16)) else: # not support logging.warn('addr_type not support') return port = struct.unpack('>H', self.rfile.read(2)) clientID = hashlib.sha1(str(self.client_address) + random_data(20) + str(time.time())).digest() self.remote = TCP_CLIENTS.newproxy(clientID, addr, port[0], self) if self.remote: self.handle_TCP() return except socket.error, e: logging.warn(e) return
Example #25
Source File: sockaddr.py From pynng with MIT License | 5 votes |
def __str__(self): # TODO: not a good string repr at all ip = socket.inet_ntop(socket.AF_INET6, self.addr) port = socket.ntohs(self.port) return "[{}]:{}".format(ip, port)
Example #26
Source File: sockaddr.py From pynng with MIT License | 5 votes |
def __str__(self): as_bytes = struct.pack('I', self.addr) ip = socket.inet_ntop(socket.AF_INET, as_bytes) port = socket.ntohs(self.port) return '{}:{}'.format(ip, port)
Example #27
Source File: record.py From async_dns with MIT License | 5 votes |
def parse(self, data, l): l, self.name = utils.load_message(data, l) self.qtype, self.qclass = struct.unpack('!HH', data[l: l + 4]) l += 4 if self.q == RESPONSE: self.timestamp = int(time.time()) self.ttl, dl = struct.unpack('!LH', data[l: l + 6]) l += 6 if self.qtype == types.A: self.data = socket.inet_ntoa(data[l: l + dl]) elif self.qtype == types.AAAA: self.data = socket.inet_ntop(socket.AF_INET6, data[l: l + dl]) elif self.qtype == types.MX: _, self.data = MX_RData.load(data, l) elif self.qtype == types.SRV: _, self.data = SRV_RData.load(data, l) elif self.qtype == types.NAPTR: _, self.data = NAPTR_RData.load(data, l) elif self.qtype == types.SOA: _, self.data = SOA_RData.load(data, l) elif self.qtype in (types.CNAME, types.NS, types.PTR, types.TXT): _, self.data = utils.load_message(data, l) else: self.data = data[l: l + dl] l += dl return l
Example #28
Source File: protocols.py From aiosocks with Apache License 2.0 | 5 votes |
def build_dst_address(self, host, port): family_to_byte = {socket.AF_INET: c.SOCKS5_ATYP_IPv4, socket.AF_INET6: c.SOCKS5_ATYP_IPv6} port_bytes = struct.pack('>H', port) # if the given destination address is an IP address, we will # use the IP address request even if remote resolving was specified. for family in (socket.AF_INET, socket.AF_INET6): try: host_bytes = socket.inet_pton(family, host) req = [family_to_byte[family], host_bytes, port_bytes] return req, (host, port) except socket.error: pass # it's not an IP number, so it's probably a DNS name. if self._remote_resolve: host_bytes = host.encode('idna') req = [c.SOCKS5_ATYP_DOMAIN, chr(len(host_bytes)).encode(), host_bytes, port_bytes] else: family, host_bytes = await self._get_dst_addr() host_bytes = socket.inet_pton(family, host_bytes) req = [family_to_byte[family], host_bytes, port_bytes] host = socket.inet_ntop(family, host_bytes) return req, (host, port)
Example #29
Source File: test_socket.py From oss-ftp with MIT License | 5 votes |
def testStringToIPv4(self): from socket import inet_ntoa as f, inet_ntop, AF_INET g = lambda a: inet_ntop(AF_INET, a) self.assertEqual('1.0.1.0', f('\x01\x00\x01\x00')) self.assertEqual('170.85.170.85', f('\xaa\x55\xaa\x55')) self.assertEqual('255.255.255.255', f('\xff\xff\xff\xff')) self.assertEqual('1.2.3.4', f('\x01\x02\x03\x04')) self.assertEqual('1.0.1.0', g('\x01\x00\x01\x00')) self.assertEqual('170.85.170.85', g('\xaa\x55\xaa\x55')) self.assertEqual('255.255.255.255', g('\xff\xff\xff\xff'))
Example #30
Source File: ja3.py From ja3 with BSD 3-Clause "New" or "Revised" License | 5 votes |
def convert_ip(value): """Convert an IP address from binary to text. :param value: Raw binary data to convert :type value: str :returns: str """ try: return socket.inet_ntop(socket.AF_INET, value) except ValueError: return socket.inet_ntop(socket.AF_INET6, value)