程序实践

最近在做线上产品的时候遇到了一个比较麻烦的问题,用户需要绑定自己的域名。但是由于线上服务器已经处于全站 https 的状态,需要用户提供自己域名对应的证书和私钥,证书信息可能会考虑存在后端的数据库以及缓存中。为了更加灵活的提供自定义域名的绑定服务,就需要后端服务来实现支持 SNI (Server Name Indication) 的加密处理。

其实在平时使用 CDN 服务的时候,服务商大多都支持用户…

关键词:node.js , SNI , TLS , 自定义域名
程序实践

[Python] 验证服务器 SSL 证书域名匹配

作者 huhamhire, 2014年11月23日 19:30

前段时间,在 hosts 问答网站上有用户提到了需要在检测服务器时,验证服务器的 SSL 证书。于是,昨天抽出了两个小时时间研究了一下用 Python 如何处理这个问题。

原本打算依旧用 Python 2 来做的,研究了一下文档以后,发现 Python 2 提供的 API 实现起来略坑,竟然起了是时候转战 Python 3 的想法 :-P 毕竟咱也没必要坚守 Python 2 这个 Python 中…

关键词:Python , SSL , 工具 DIY , 网络测试
程序实践

[Python] Dyn 动态域名更新工具

作者 huhamhire, 2014年5月14日 10:26

因为设备上的原因,我一直在使用 DynDNS 的动态域名服务(其实家里那只 Cisco 的路由器应该是支持 DynDNS 或者 TZO 服务的,不过 TZO 现在已经被 DynDNS 给拿下了,所以要用路由器上的这个功能的话,没得选 TAT)。虽然从今年开始,Dyn 已经取消了免费使用政策,不过好在 Pro 版在资费上进行了下调,一年的费用也不用花多少美刀。

作为动态域名领域最为知名的国际服务商之一…

关键词:DDNS , Python , 工具 DIY
程序实践

[Python] 多目录 SVN 更新工具

作者 huhamhire, 2014年5月11日 19:52

前一阵子遇到了一个关于 SVN 的问题,因为公司代码在权限管理上的需要,开发项目目录下的各模块分支都做了权限限制。这种情况下,在获得完整的高层级目录权限以前,同步更新多个工作目录下多个模块代码是件略麻烦的事情,特别是在除项目目录以外还有其他目录内容需要获取的时候,即使使用 svn up * 也不能很好的解决一次性更新的问题。

正所谓想着办法要偷懒是码农的天性,于是我就写了下面这样的一个 Python…

关键词:Python , SVN , 工具 DIY
程序实践

[Java] 自动获取 LDAP 基准 DN 列表

作者 huhamhire, 2014年4月27日 12:18

在使用 LDAP 协议从 Active Directory 等目录管理服务获取组织结构数据时,一般总是需要对目录的检索路径进行配置。但是由于实际使用中的目录组织结构通常会比较复杂,往往会出现有多个树(或者 AD 中的网域)的情况。如果配置人员对所需访问路径不熟悉,或者目录组织结构特别庞大的情况下,直接人工设置容易出现配置错误或是检索效率低下的问题。所以在设计相关的配置功能时,如果能够自动获取各目录…

关键词:Java , LDAP
程序实践

[Python] 多线程 HTTP/HTTPS 访问延迟测试工具

作者 huhamhire, 2014年2月5日 13:14

由于 hosts 中的内容绝大部分都是指向 HTTP/HTTPS 服务,为了测试实际的访问效果,在做完之前的 ICMP 延迟测试之后,我准备继续做一遍类似 ping 的 http 访问延迟测试,并记录页面访问的状态信息。当然,这次实现的依然只是最后成品模块的原型。

在目前总共数千条的域名规模的情况下,在各域名与其对应的 IP 组合后,总共有将近 35k+ 个组合,需要在 HTTP 测试的时候逐一进行…

关键词:PPTP , 工具 DIY , 网络测试
程序实践

[Python] 多线程 ICMP 测试工具

作者 huhamhire, 2014年2月2日 14:31

接着上一次的多线程 NS 查询工具,获取域名 IP 地址只是后面 hosts 自动化生成工具功能上最为基础的第一步,后面更为重要的环节就是对这些地址的有效性,以及访问效果进行测试评估。所以,这一部分就来说下我目前实现的多线程 ICMP 测试模块原型。

既然连 NS 查询都已经用到了多线程,加上 NS 服务器对每个域名返回的 IP 结果可能会有多个,根服务器对于某些域名比如 Google 这样的,甚至…

程序实践

[Python] 多线程 NS 查询工具

作者 huhamhire, 2014年1月27日 16:44

前段时间正好考虑了一下后面 hosts 工具的远期目标,感觉以后如果要朝着自动化维护的方向推进的话,首先需要的就是可以自动获取 hosts 的条目,并且可以对这些条目进行一些基础的访问测试。那么这些 hosts 的数据要怎么获取呢?hosts 文件中间的主要内容就是服务器的 IP 地址与其对应的域名。经过这些年的积累,手上目前积累的域名差不多有数千条,域名的问题暂时不用考虑。IP 地址的自动获取,…

关键词:DNS , Python , 工具 DIY , 网络测试
程序实践

[Python] 使用 + 与 join 连接字符串的性能区别

作者 huhamhire, 2013年8月2日 09:17

对字符数据的处理是Python在应用上的一大优势,Python在操作字符串数据的时候经常要对字符串进行连接操作,连接的时候无外乎是两种方法。方法一:使用最简单的"+"运算符连接字符串;方法二:使用字符串对象的join方法来对字符串进行连接。

看到好多文章里都说上面的第一种方法效率比较低下,都推荐用join操作来代替"+"运算。但我总觉得此类文章大都对这个问题说的太笼统,有点人云亦云的感觉,在这两种方…

关键词:Python , 小实验
程序实践

[Python] 多路选择语句的写法与性能测试

作者 huhamhire, 2013年7月31日 20:07

Python这玩意儿已经学了到现在差不多快两年了,这么些时间用下来,我最大的感触就是,Python是一个简洁而强大的工具。平时遇到的大部分小问题都可以拿Python来解决,比如我前两周在做的新版hosts客户端工具就是Python与PyQT结合的产物,上学期的操作系统课程实验我也用Python很轻松的给解决了所有问题。Python是个好东西,不过我这人经常喜欢动些歪脑经,没事儿瞎折腾一下,所以就出…

关键词:Python , 小实验