Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
quick ipv6 http server using python's SimpleHttpServer
import socket
from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler
class MyHandler(SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/ip':
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write('Your IP address is %s' % self.client_address[0])
return
else:
return SimpleHTTPRequestHandler.do_GET(self)
class HTTPServerV6(HTTPServer):
address_family = socket.AF_INET6
def main():
server = HTTPServerV6(('::', 8080), MyHandler)
server.serve_forever()
if __name__ == '__main__':
main()
@rubo77
Copy link

rubo77 commented Nov 24, 2015

Great, this just works!

an output where to connect would be nice though

Loading

@ckorn
Copy link

ckorn commented Jul 30, 2016

Perfect for https://github.com/diafygi/letsencrypt-nosudo when serving the challenge over IPv6. Now that it is finally supported: https://letsencrypt.org//2016/07/26/full-ipv6-support.html

Loading

@vdloo
Copy link

vdloo commented Sep 10, 2016

Thanks. Also works in python 3 if you replace

from BaseHTTPServer import HTTPServer
from SimpleHTTPServer import SimpleHTTPRequestHandler

with

from http.server import HTTPServer, SimpleHTTPRequestHandler

Loading

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment