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

This comment has been minimized.

Copy link

rubo77 commented Nov 24, 2015

Great, this just works!

an output where to connect would be nice though

@ckorn

This comment has been minimized.

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

@vdloo

This comment has been minimized.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.