Skip to content

Instantly share code, notes, and snippets.

@falkben
Created July 1, 2020 21:51
Show Gist options
  • Save falkben/82e55dd7ba40ecd8b08efd84de9929ed to your computer and use it in GitHub Desktop.
Save falkben/82e55dd7ba40ecd8b08efd84de9929ed to your computer and use it in GitHub Desktop.
simple http server for testing open ports
import argparse
from http.server import BaseHTTPRequestHandler, HTTPServer
from socketserver import ThreadingMixIn
from threading import Thread
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header("Content-type", "text/plain")
self.end_headers()
self.wfile.write(
f"Hello from {self.server.server_address[1]}".encode("utf8"))
class ThreadingHTTPServer(ThreadingMixIn, HTTPServer):
daemon_threads = True
def serve_on_port(port):
print(f"serving on port {port}")
server = ThreadingHTTPServer(("", port), Handler)
# server = ThreadingHTTPServer(("localhost", port), Handler)
server.serve_forever()
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--ports", nargs="+", type=int,
help="Ports", required=True)
args = parser.parse_args()
ports = args.ports
if len(ports) > 1:
for port in ports[0:-1]:
Thread(target=serve_on_port, args=[port]).start()
serve_on_port(ports[-1])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment