IP地址块聚合的具体算法

Python016

IP地址块聚合的具体算法,第1张

举例说明:

1、某企业分配给产品部的IP地址块为192.168.31.192/26,分配给市场部的IP地址块为192.168. 31.160/27,分配给财务部的IP地址块为192.168.31.128/27.那么这三个地址块经过聚合后的地址为:192.168.31.128/25

A、192.168.31.0/25

B、92.168.31.0/26

C、192.168.31.128/25

D、 192.168.31.128/26

解析:

1916831.192726 (网络位有26位.主机位有位),将192变成二进制的数据。

192.168 31.11 00000 (颜色标注的为网络位,后边的为主机位)

17683116017 (网络位有27位.主机位有位),将160变成一进制的数量。

192.168 31 101 00000 (颜色标注的为网络位,后边的为主机位)

321683112877 (网络位有27位,主机位有位)将123变成二进制的数果。

19216831100 000007 (颜色标注的为网络位,后边的为主机位)

在变化成一进制的三组数据放在起,比较三组二进制数据中高位完全相同的部分。192.168.31.110 0000/26/192.168.31.11100000/27/192.168.31.100 00000/27:

192.168.21.000 00000/27>=192.168.31.128/25

2、若某大学分配给计算机系的IP地址块为202.113.16.128/26,分配给自动化系的IP地址块为202.113.16.192/26,那么这两个地址块经过聚合后的地址为

A、202.113.16.0/24

B、202.113.16.0/25

C、202.113.16.128/25

D、202.113.16.128/24

解析:

地址聚合无非是找出它们相同的部分...将两个分配的IP地址块最后一部分换算成二进制(因为只有最后一部分不相同),之后可得出新的子网掩码(子网掩码中相同的部分用1表示,不同的部分用0表示):

202.113.016.10 000000、202.113.016.11 000000、255.255.255.10 000000。

结合可得聚合地址块为202.113.16.128,子网掩码为255.255.255.128,也即202.113.16.128/25。

主要介绍了python使用Flask框架获取用户IP地址的方法,实例分析了Python使用Flask框架remote_addr获取IP的`技巧,非常具有实用价值,需要的朋友可以参考下。 下面的代码包含了html页面和python代码,非常详细,如果你正使用Flask,也可以学习一下最基本的Flask使用方法。 python代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route, print user's IP @app.route('/') def index(): ip = request.remote_addr return render_template('index.html', user_ip=ip) if __name__ == '__main__': app.run( host="0.0.0.0", port=int("80") ) html代码如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <!DOCTYPE html> <html lang="en"> <head> <link href="bootstrap/3.0.0/css/bootstrap.min.css" rel="stylesheet"> </head> <body> <p class="container"> <p class="header"> <h3 class="text-muted">How To Get The IP Address Of The User</h3> </p> <hr/> <p> You IP address is: <strong>{{user_ip}}</strong> <p class="header"> <h3 class="text-muted">Code to retrieve the IP</h3> </p> <hr/> <pre> from flask import Flask, render_template, request # Initialize the Flask application app = Flask(__name__) # Default route, print user's IP @app.route('/') def index(): ip = request.remote_addr return render_template('index.html', user_ip=ip) </pre> </p> </p> </body> </html> 希望本文所述对大家的Python程序设计有所帮助。

使方法一、用IP138数据库查询域名或IP地址对应的地理位置。

?

1234567891011121314151617181920212223242526

#-*- coding:gbk -*-import urllib2import re try: while True: ipaddr = raw_input("Enter IP Or Domain Name:") if ipaddr == "" or ipaddr == 'exit': break else: url = "http://www.ip138.com/ips138.asp?ip=%s&action=2" % ipaddr u = urllib2.urlopen(url) s = u.read() #Get IP Address ip = re.findall(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',s) print "\n****** Below Result From IP138 Database *****" print "IP Address:",ip[0] #Get IP Address Location result = re.findall(r'(<li>.*?</li>)',s) for i in result:print i[4:-5] print "*"*45 print "\n" except: print "Not Data Find"

方法二、本来想调用阿里的ip接口查询ip归属地。结果发现阿里的接口非常不给力,主要是不准确,不过是免费的且有地区和ISP的信息。以下是实现代码