python小程序分享

2020-03-18  本文已影响0人  明翼

这篇文章是飞总的投稿,飞总本不是做开发的,但是他很爱好编程,又热爱分享。自学go,最近这一两个月又开始学习python,这篇是飞总的投稿。

一程序说明

1、从一个excel中读取网址字段,提前建好xls
2、通过域名查询IP和物理位置信息
3、再将域名和查询到的IP写到另一个excel中,不用提前建好
4、以下中文备注的地方需要改成具体的路径之类的
5、下面的pandas需要提前安装,用pip install pandas
6、socket一般都有,如果有报错,就安装呗,ip2Region不用安装,和此脚本保存在同一目录下即可

二 代码

import pandas as pd
import socket
from ip2Region import Ip2Region

xls=pd.ExcelFile('/home/kali/Desktop/Pythoncode/beian20200316.xls')
domain=pd.read_excel(xls,'beian',usecols=[2])#打开前面那个excel,读取beian这个sheet中的第2列,其实是C列,pandas是从0开始

domainip=[]#定义一个列表
geoobj=Ip2Region('/home/kali/Desktop/Pythoncode/ip2region-2.1.0-release/data/ip2region.db')#改成自己本地的路径

for i in domain['www']:#上面读取第2列后,这里www是指列的列名,可以根据现场改
    try:
        ip=socket.gethostbyname(i)
        region=geoobj.btreeSearch(ip)['region'].decode('utf-8')
        #因为是二维表,所以空列表里面需要再套层列表,所以用append方法,即两个维度的列表[[]]
        domainip.append([i,ip,region])
    #有一个域名有问题,忘了,但报错,直接忽略掉那个就行了
    except socket.gaierror:
        pass
#将二维列表转换成dataframe
dfdomainip=pd.DataFrame(domainip)
#写到另一个excel中,可以不用提前建,试验了写之前的excel中新sheet,老是全部被覆盖,后续再优化吧
writer=pd.ExcelWriter('/home/kali/Desktop/Pythoncode/domainip.xls')
dfdomainip.to_excel(writer,sheet_name='Sheet1')
#从缓存中写数据到excel中
writer.save()
运行结果截图

参考

ip2region.db使用参考:https://blog.51cto.com/wujianwei/2123493

最后感谢飞总投稿:),欢迎大家投稿。

上一篇 下一篇

猜你喜欢

热点阅读