由于能力有限,我讲得比较浅显,而且只代表我个人观点
- 网上有人这么说:
· 但我觉得还是不公布的好,原因将在下面展开叙述:
为什么不能泄露自己的IP地址?
不知道你们是不是跟我一样曾经对这样的话感到特别好奇?
- 为什么不能把自己的IP地址告诉别人?
- 学了网络攻防的公选,知道IP也只能被人Ping,但是现在的计算机还担心这个??
死亡之ping
早就是个笑话了- ....
但大多数人都是从小就接受了不能随便泄露IP地址的思想灌输,所以多数人都是在害怕着,但基本都不知道自己究竟在害怕些什么。
对此,我一直抱有疑惑
但值得一提的是,昨天我看了一篇python的文章,讲解用IP实现定位
他写了代码,并上传了IP数据集
技术掌握简单
我按照他的思路做了一次,感觉也是相当容易的,同时也是很好理解的。
(对了,他一开始只是想讲解下图形界面设计,这个由于以前学过QT,所以上手很快)
但是要注意一点,这里说了很简单!!!
- 我对他的代码做了一个小修改,就是实现了将那个输出框的输出方式做了修改,这样输出的时候好看一点。并且做了更好的IP容错。
-
这是我按照他给的例子做的
-
这是我自己试出来的IP
获取IP地址方便
怎么?你以为这样就完了?(不仅仅是简单)
在百度上搜了一下IP地址
然后就会出现上面这一堆东西。
还没有学计网的我,对于网络世界的理解还是有限的。所以,请原谅我这有点愚蠢的担忧。
- 你的IP地址,就很容易就是显现出来了
- 或者你在你CMD窗口上输入“ipconfig”你也可以看到你的IP地址(我试了那个显示的地址,(用校园网的话 )那是一个分配的地址,似乎不行。
但是可以用上面那个,(滑稽)
个人建议
根据上面的效果,我个人推荐还是要隐藏好个人IP地址,毕竟不是哪个人都想要网络上的陌生人太过具体知道自己的地址。(
特别是我的高中前段时间被人在贴吧上人肉后过,我就对此尤为关注)
不过,不得不说是,要查还是能查到的(不过终究还是降低了被查到的可能,只要自己多留心的话)。
代码展示
import tkinter
import pygeoip
class FindLocation(object):
def __init__(self):
self.gi = pygeoip.GeoIP('H:/下载/GeoLiteCity.dat')
# 创建主窗口
self.root = tkinter.Tk()
# 设置好了标签
self.root.title = ('全球IP定位系统')
# 创建一个输入框
self.ip_input = tkinter.Entry(self.root, width=30)
# 创建一个显示框
self.display_info = tkinter.Listbox(self.root, width=50)
# 创建一个查询结果的按钮
self.result_button = tkinter.Button(self.root, command=self.find_position, text="查询")
# 完成布局
def gui_arrange(self):
self.ip_input.pack()
self.display_info.pack()
self.result_button.pack()
def find_position(self):
self.ip_addr = self.ip_input.get()
aim = self.gi.record_by_name(self.ip_addr)
try:
city = aim["city"]
country = aim["country_name"]
region_code = aim["region_code"]
longitude = aim["longitude"]
latitude = aim["latitude"]
except:
city = country = region_code = longitude = latitude = "No find!"
the_ip_info = ["所在纬度:":" + str(latitude), "所在经度:" + str(longitude), "地域代号:" + str(region_code),
"所在城市:" + str(city), "所在国家或地区:" + str(country), "需要查询的IP:" + str(self.ip_addr)]
if self.display_info.size() >= 6:
self.display_info.delete(0, self.display_info.size() - 1)
for item in the_ip_info:
self.display_info.insert(0, item)
return the_ip_info
def main():
FL = FindLocation()
FL.gui_arrange()
tkinter.mainloop()
pass
if __name__ == "__main__":
main()