I am running a website on an internal network using Python 2.7 on Windows 7. I have a simple text form (with one hidden value: question number) where users submit their answers for a CTF competition. To prevent multiple responses from the same computer, I need to collect the client's IPv6 or MAC address. How should I accomplish that? It does not matter whether I use GET or POST method.
Here is my current script to accept responses. It is located in the cgi-bin directory.
import cgi form = cgi.FieldStorage() p_number = form.getvalue('problem') answer = form.getvalue('answer') And here is my script to host the server.
import BaseHTTPServer import CGIHTTPServer import cgitb; cgitb.enable() def server(port): server = BaseHTTPServer.HTTPServer handler = CGIHTTPServer.CGIHTTPRequestHandler server_address = ("", port) httpd = server(server_address, handler) httpd.serve_forever() While running the server, I can see everything that clients access and their IPs in the terminal. Is there a way to log this in a .txt file and then extract the needed values? (I know how to extract them if I would have the log) Here is the image, as you can see, I have been using bootstrap for the website. 
(source: googledrive.com)
I didn't want to ask too many questions, so here are some other things I would like to know: What is the best way to set and read cookies in Python CGI? Is it to use "Set cookie: x=y" or to import a Cookie module? Is there any other way?
Is there a way to block certain users? Lastly, I am not allowed to use any other modules that are not already included in Python 2.7.