ip转换为长整数(带源码)

简介:访问一个网站除了直接访问127.0.0.1这种类型的ip,还可以通过ip转换的长整数来访问网站。

例子:把a.b.c.d转换为长整数。

a*256*256*256+b*256*256+c*256+d = 2130706433

转换结果:

十进制:http://2130706433

八进制:http://017700000001

十六进制:http://0x7f000001

访问这些都相当于访问http://127.0.0.1。该办法可以用来尝试绕过SSRF漏洞过滤。


源码:

#-*- coding:utf-8 -*-

import optparse

parser = optparse.OptionParser()

parser.add_option("-p", action='store',dest="ip", help="please write ip") 

(options, args) = parser.parse_args()

a = options.ip.split('.')

ip1 = int(a[0]) * 256 * 256 *256

ip2 = int(a[1]) *256 *256

ip3 = int(a[2]) *256

ip4 = int(a[3])

ip = ip1 + ip2 + ip3 + ip4

print("10 : "+str(ip))

e = str(oct(ip))

print("8 : 0"+e[2:])

print("16 : "+hex(ip))


运行:

ip-long.py -p 127.0.0.1


你可能感兴趣的:(ip转换为长整数(带源码))