我们知道,计算机在访问远程主机的时候,本质上是通过IP地址来进行访问的,但我们实际在使用的时候,例如我们想访问百度的主页,我们是通过在浏览器的地址栏输入百度的域名来进行访问的,因此,计算机需要将百度的域名解析成IP地址来进行访问。那么,如果我们仅知道某一个远程主机的域名,而不知道其IP地址,Python如何解决此类问题呢?下面这个小程序,会给大家答案。

#导入Socket模块,否则gethostbyname无法使用

importsocket

#待解析的域名主机

host='www.baidu.com'

port=80

#异常处理

try:

remote_ip=socket.gethostbyname(host)

exceptsocket.gaierror:

#若无法解析host的IP

print('hostnamecouldnotberesolved.')

sys.exit()

print('IPaddressof"'+host+'"is'+remote_ip)

#连接到远程主机

s=socket.socket()

s.connect((remote_ip,port))

print('SocketConnectedto'+host+'onip'+remote_ip)

解析远程域名主机的IP地址的更多相关文章

  1. 通过主机名(域名)获取IP地址,主机别名等信息

    一.所用API函数介绍 struct hostent FAR*gethostbyname( const char FAR* name ); 传入參数:const char FAR* name.主机名或 ...

  2. logresolve - 解析Apache日志中的IP地址为主机名

    logresolve是一个解析Apache访问日志中IP地址的后处理程序. 为了使对名称服务器的影响降到最低,logresolve拥有极为自主的内部散列表缓存, 使每个IP值仅仅在第一次从日志文件中读 ...

  3. 域名转化到IP地址的实现

    在linux中,有一些函数可以实现主机名和地址的转化,最常见的有gethostbyname().gethostbyaddr()等,它们都可以实现IPv4和IPv6的地址和主机名之间的转化.其中geth ...

  4. 使用shell查看局域网中主机的IP地址

    此脚本只是快速查看所在局域网中其它主机的IP地址,如果对方设置了禁ping,则无法显示出此主机的IP地址: #!/bin/bash ` do ping -c2 .$i &>/dev/nu ...

  5. 使用ACE获取主机的IP地址

    使用ACE获取主机的IP地址,不知道为什么会有127.0.0.1? #include "stdafx.h" #include "ace\OS.h" #inclu ...

  6. Vmware虚拟中克隆主机没IP地址?怎么解决?

    Vmware虚拟中克隆主机没IP地址?怎么解决? 修改网卡的配置文件:  清空如下的文件: 重启主机即可!  

  7. 【Hadoop 分布式部署 二:分布式环境预备工作(主机名 IP地址等设置)】

    1.首先使用工具连接上  这三台虚拟主机 2.配置主机名   切换到  root 用户 第一种方式 可以使用命令       hostname   [要更改的主机名]     但是这种更改主机名的方式 ...

  8. ubuntu Server 设置主机静态 ip地址

    ubuntu Server 设置主机静态 ip地址 1:先输入 ifconfig 查看当前网络配置 2:然后关闭 eth0 网卡 sudo ifdown eth0 3:配置静态ip sudo vim ...

  9. java 获取访问主机的ip地址

    Java的api的说法: getHeader public java.lang.String getHeader(java.lang.String name) Return the first val ...

随机推荐

  1. vue之v-bind:style

    <div class="collect" @click="collected=!collected"> <i class="fa f ...

  2. CSS Float浮动所带来的奇怪现象

    先抛个例子出来 运行下面的例子后,可以看到输出内容如下. <!DOCTYPE html> <html lang="en"> <head> < ...

  3. 统计TCP网络连接情况

    #!/bin/bash metric=$1 tmp_file=/tmp/tcp_status.txt /bin/netstat -an|awk '/^tcp/{++S[$NF]}END{for(a i ...

  4. 从jarray中删除指定元素的问题

    string jsonText = "[{\"a\": \"aaa\",\"b\": \"bbb\",\&qu ...

  5. Nginx敏感信息泄露漏洞(CVE-2017-7529)

    2017年7月11日,为了修复整数溢出漏洞(CVE-2017-7529), Nginx官方发布了nginx-1.12.1 stable和nginx-1.13.3 mainline版本,并且提供了官方p ...

  6. iOS RunLoop详解

    1. RunLoop简介 1.1 什么是RUnLoop 可以理解为字面的意思:Run表示运行,Loop表示循环.结合在一起就是运行的循环.通常叫做运行循环. RunLoop实际上是一个对象,这个对象在 ...

  7. shadow批量破解

    john有个参数可以设置破解时间,比如破解5秒则设置:--max-run-time=5,可以利用这个参数批量破解 for i in *;do (echo $i>>out;john --ma ...

  8. time 和 datetime 模块

    在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量.我们运行“type(time.time( ...

  9. BAPI: TRANSACTION_BEGIN的作用

    大概知道是启动一个新会话, CALL FUNCTION 'TRANSACTION_BEGIN' 业务数据处理, CALL FUNCTION 'TRANSACTION_END' 详细功能不清楚. CLE ...

  10. F110使用的函数

    BAPI_ACC_DOCUMENT_POST BAPI_GL*POST 1.F-59 [没有找到函数]BAPI_ACC_DOCUMENT_POST 必须创建有借贷2 line 的凭证,需求要参考原始的 ...