import json
from urlparse import parse_qs
from wsgiref.simple_server import make_server
import os
import re
from django.http import HttpResponse
from django.conf import settings
settings.configure()
# 定义函数,参数是函数的两个参数,都是python本身定义的,默认就行了。
def application(environ, start_response):
# 定义文件请求的类型和当前请求成功的code
start_response('200 OK', [('Content-Type', 'application/json')])
#request_body = environ["wsgi.input"].read(int(environ.get("CONTENT_LENGTH", 0))) #post请求
request_body = environ["QUERY_STRING"] #get请求
d = parse_qs(request_body)
ip = d.get('ip', [''])[0]
mask = d.get('mask', [''])[0]
gateway = d.get('gateway', [''])[0]
dns1 = d.get('dns1', [''])[0]
dns2 = d.get('dns2', [''])[0]
callback = d.get('callback', [''])[0]
dic = {'ip': ip, 'mask': mask,'gateway':gateway,'dns1':dns1,'dns2':dns2}
res = {'success':1,'message':'成功!'}
for key,value in dic.items() :
if not re.match("\d{1,3}(?:\.\d{1,3}){3}",value) :
res['success'] = 0;
res['message'] = 'ip格式错误';
return HttpResponse(callback + "(" + json.dumps(res) + ")")
if dic['ip'][0:dic['ip'].rfind('.')] != dic['gateway'][0:dic['ip'].rfind('.')] :
res['success'] = 0;
res['message'] = 'ip格式错误';
return HttpResponse(callback + "(" + json.dumps(res) + ")")
#设置ip
os.system("sh changeIP.sh {} {} {} {} {}".format(ip,mask,gateway,dns1,dns2))
#jsonp
return HttpResponse(callback + "(" + json.dumps(res) + ")")
if __name__ == "__main__":
port = 11112
httpd = make_server("0.0.0.0", port, application)
print "serving http on port {0}...".format(str(port))
httpd.serve_forever()