Python脚本内自定义域名解析的IP
今天因为网站上有一个小功能,原先单台服务器时执行一条url即可完成功能,但目前执行URL只会作用在某一台服务器。遂想着用Python写一段脚本然后放在集中管理平台上对所有服务器下发。其实这种情形,用shell脚本执行curl也可实现相同效果。
由于服务器走公网解析我们域名的话,同样只有一台服务器完成功能。所以我想着是不是在不修改本机hosts的情况下,在Python脚本内实现对域名的解析。带着这个想法,终于在stackoverflow上找到了可行的答案。
大致思路是,首先定义一个函数,记录你需要自定义IP的域名,并建立一个httplib.HTTPConnection的子类,在参数传递给socket.create_connection前修改self.host以封装connection方法。然后继承HTTPHandler这个类,用上面的HTTPConnection替换httplib内自带的HTTPConnection,并重写http_open方法;最后把HTTPHandler放到自定义的opener。
1 | #!/usr/bin/env python |