域名查找及错误检查

检查的方法就是首先根据ip查找出一个域名。

然后再根据这个域名查找出一个ip列表。

最后检查你所用ip是否再ip列表里面。

#!/usr/bin/env python
#coding:utf-8
#根据ip反查域名,并且检查域名是否正确
import socket, sys

ip = sys.argv[1]

#根据ip地址查找域名
def findyuming(ip):
    m = socket.gethostbyaddr(ip)
    ym = m[0]
    return ym

#根据查找到的域名,得到ip列表
def findiplist(yuming):
    l = socket.getaddrinfo(yuming, None)
    return [x[4][0] for x in l]

#错误捕捉与处理
try:
    y = findyuming(ip)
    m = findiplist(y)
except socket.herror, e:
    print "No host name available for %s" % ip
    sys.exit(0)
except socket.gaierror, e:
    print "No host name available for %s" % ip
    sys.exit(0)

#检查所得的ip是否是再ip列表里面
if ip not in m:
    print "No host name available for %s" % ip
    sys.exit(1)
print "validated hostname:", y

执行一下:

[[email protected] four]# python two.py 127.0.0.1
validated hostname: localhost
[[email protected] four]# python two.py 127.0.0.2
No host name available for 127.0.0.2
时间: 2024-10-23 00:24:41

域名查找及错误检查的相关文章

AIDE支持实时错误检查、代码重构、代码智能导航、生成APK

AIDE是一个Android Java集成开发环境,可以在Android系统内进行Android软件和游戏的开发.它不仅仅是一个编辑器,而是支持编写-编译-调试运行整个周期,开发人员可以在Android手机或者平板机上创建新的项目,借助功能丰富的编辑器进行代码编写,支持实时错误检查.代码重构.代码智能导航.生成APK,然后直接安装进行测试.

再谈Segmentation fault (core dumped)问题 -查找段错误原因

再谈Segmentation fault (core dumped)问题 -查找段错误原因    在前一篇文章"Segmentation fault (core dumped) "有说了具体core dumped产生的原因. 下面主要来介绍下问题的解决与查找,在linux下一般都使用gdb进行调试,那今天我就以Ubuntu 14.04环境作为介绍 来查找正在的core dumped的原因.需要说明的是,你在编译程序的时候要加调试选项 -g. $ gcc -o app reverse.c

出错处理- 错误码-错误检查

1.错误检查: 头文件errno.h定义了变量errno,它存储了错误发生时的错误码,通过错误码可以得到错误的描述信息. 当函数调用失败时,errno的值才有意义. 2.错误码: 错误码是一些定义在errno.h中的宏: 3.错误的提示信息 char *strerror(int errnum); 根据错误码,获取描述错误信息的字符串,函数的返回值指向该字符串的指针. void perror(const char *msg); 打印错误信息到stderr,stderr通常就是命令行终端,调用per

IIS7部署报错 500.22错误 检查到这集成托管模式下不使用的ASP.NET配置

2014-08-08 公司的一个项目,环境为: .Net 4.0 + MVC3,部署在Windows Server 2003R2 IIS6.0上面运行正常, 迁移到新服务器Windows Server 2008R2,部署在 IIS7.0上, 应用程序池中,托管管道模式中选中了“集成”模式,如下图: 其他配置如下: 配置完成后,访问出错报错, 最后检查出了原因:该项目中的web.config配置文件不适合IIS7.0. 于是将应用程序池的管道模式选择为“经典”模式 再次访问一切正常. 问题的根本原

名字查找先于类型检查:函数重载与作用域

作用域屏蔽名字:内层作用域中声明的名字将隐藏外层作用域中声明的同名实体. 同名??C++有关同名的除了变量之外,也就是函数重载了!! [作用域对于函数重载的限制] 1. 在不同的作用域中无法重载函数名 2. 函数匹配时,编译器首先寻找对该函数名的声明,一旦在当前作用域中找到了所需的名字,编译器就会忽略掉外层作用域中的同名实体,剩下的工作就是检查函数调用是否有效了 #include <iostream> using namespace std; void print(double); void

sublime text 2 php 语法错误检查

使用sublime text 2 编写php程序的时候,保存代码的时候,直接检查出语法错误,有利于提高效率. 1.安装sublime text 2 package menu : preferences->package control -> install package 安装 PHP Syntax Checker插件 sublime 2 安装目录: C:\Program Files (x86)\Sublime Text 2 package和配置存放目录: C:\Users\xzz64\App

&lt;1&gt; 在Unity3d 自动查找表格错误

在游戏开发中,有很多的配置表格,需要策划反复的填写,很多表格的列 也就是对应程序的某个属性,是有要求的,比如程序需要的可能是个id的数字型,而可能被策划不填写或者填成了一个字符串类型的那么程序就会报错提示类型转换错误,如此等等,但是作为一个策划我相信他们是没法知道是哪个表格错了(虽然程序很容易看出来,哈哈,原谅策划大大们吧,他们只会策划,这就要求我们程序出马了,提示一个sb都能看懂的文字) 思路: 这个功能其实真的太简单了,只需要捕获异常并以简单的弹窗提示即可 比如在游戏中有这样的函数,负责加载

Web Deploy发布网站错误 检查授权和委派设置

web Deploy发布asp.net网站给我们提供方便,开始配置好了可以方便的发布网站,但是过久就出现无法执行此操作.请与服务器管理员联系,检查授权和委派设置.花了好长时间找到问问所在.现在解决方法分享出来.希望对大家有点用帮助 ? ? 原来,当您安装网络部署它设置了两个本地帐户WDeployConfigWriter和WDeployAdmin.对这些帐户的密码默认设置为过期.?因此,重设密码的Web服务器上,并设置为"永不过期".?然后去管理服务委派在IIS中.?它在WDeployA

Web Deploy 发布网站错误 检查授权和委派设置

Web Deploy发布ASP.NET网站给我们提供方便,配置好后可以很方便地发布网站到IIS服务器. 自安装Web Deploy一年以来,一直都用得好好地. 直到最近,Gitlab-CI自动发布出了问题,提示: "C:\Tools\GitLab-Runner\builds\d1af4d14\0\WP\Hallhuber\src\WP.Web.Mvc\1621.WP.Web.Mvc.csproj" (default target) (1) -> (MSDeployPublish