Compare commits
3 Commits
ee4bb1a184
...
d577928b3a
Author | SHA1 | Date |
---|---|---|
|
d577928b3a | |
|
71a3076f99 | |
|
a53f2205bf |
25
server.py
25
server.py
|
@ -3,15 +3,32 @@ import argparse
|
|||
import logging
|
||||
import socket
|
||||
|
||||
LOGGER = logging.Logger(__name__)
|
||||
LOGGER = logging.getLogger(__name__)
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument("host", help="The IPv6 address of the host to connect to.")
|
||||
parser.add_argument("--address", help="The IPv6 address to bind")
|
||||
parser.add_argument("--port", "-p", default=50007, help="The port to connect to.")
|
||||
parser.add_argument("--verbose", action="store_true", help="Verbose logging")
|
||||
args = parser.parse_args()
|
||||
|
||||
addresses = [addr for addr in socket.getaddrinfo(host=args.host, port=args.port, family=socket.AF_INET6, type=socket.SOCK_STREAM, proto=0, flags=0)]
|
||||
logging.basicConfig(
|
||||
format="%(asctime)s %(message)s",
|
||||
level=logging.DEBUG if args.verbose else logging.INFO,
|
||||
)
|
||||
|
||||
hostname = socket.gethostname()
|
||||
addresses = []
|
||||
for interface in socket.if_nameindex():
|
||||
interface_name = interface[1]
|
||||
LOGGER.debug("Found interface %s", interface_name)
|
||||
try:
|
||||
addrs = socket.getaddrinfo(host=hostname, port=80, family=socket.AF_INET6)
|
||||
for addr in addrs:
|
||||
addresses.append((interface_name, addr[4][0]))
|
||||
except socket.gaierror:
|
||||
LOGGER.info("Interfare '%s' has no IPv6 addresses", interface_name)
|
||||
addresses = [addr for addr in socket.getaddrinfo(host=args.address, port=args.port, family=socket.AF_INET6, type=socket.SOCK_STREAM, proto=0, flags=0)]
|
||||
if not addresses:
|
||||
raise ValueError("Couldn't find ipv6 address for source %s" % source_ip)
|
||||
if len(addresses) > 1:
|
||||
|
@ -40,7 +57,7 @@ def bind_socket(family, type_, proto, canonname, sockaddr):
|
|||
while True:
|
||||
data = conn.recv(1024)
|
||||
if not data: break
|
||||
conn.send(data)
|
||||
conn.send(("Hey " + data.decode("UTF-8").encode("UTF-8"))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
|
Loading…
Reference in New Issue