Get IP address in Google App Engine + Python

后端 未结 3 879
情歌与酒
情歌与酒 2020-12-25 12:18

I\'m looking for the equivalent of in Google App Engine and Python.

Thanks!

3条回答
  •  一生所求
    2020-12-25 12:23

    I slapped a quick and dirty example together based on the tutorial. It's been tested on my local appengine sdk. You should be able to adapt it to your needs:

    from google.appengine.ext import webapp
    from google.appengine.ext.webapp.util import run_wsgi_app
    from google.appengine.ext import db
    
    class Log(db.Model):
        access_time = db.DateTimeProperty(auto_now_add=True)
        ip_address = db.StringProperty()
    
    class MainPage(webapp.RequestHandler):
        def get(self):
    
            # obtain ip address
            ip = self.request.remote_addr
    
            # create a new Log record
            log = Log()
    
            # assign ip address to the ip_address field
            log.ip_address = ip
    
            # no need to set access_time because 
            # of the auto_now_add=True setting defined in the Log model
    
            # save to the datastore
            log.put()
    
            # output 
            self.response.headers['Content-Type'] = 'text/plain'
            self.response.out.write('Logged your visit from ip address %s' % ip)
    
    class LogPage(webapp.RequestHandler):
        def get(self):
            logs = Log.all()
    
            self.response.headers['Content-Type'] = 'text/plain'
            self.response.out.write('Ip addresses: ')
            for log in logs:
                self.response.out.write(log.ip_address + ',')
    
    application = webapp.WSGIApplication([('/', MainPage), ('/logs', LogPage)],
                                         debug=True)
    
    def main():
        run_wsgi_app(application)
    
    if __name__ == "__main__":
        main()
    

提交回复
热议问题