基于国家代码和ASN的类grep文件过滤器

netgrep的Python项目详细描述


===
netgrep
=



netgrep是一个命令行工具,它告诉您文本文件中的哪些行包含与特定国家或自治网络相关的网络资源。它将:

-定位域名和IP地址
-将域解析为IP地址
-将IP地址地理定位为国家代码和ASN
-从域名中提取国家代码
-输出与至少一个国家代码或指定ASN匹配的每一行。


case
--

广播公司
bbc.co.uk,英国广播公司
203.2.218.214,澳大利亚广播公司IP地址
xs4all.com,在荷兰托管,扩展名

在荷兰托管,扩展名为.com

由bbc

$netgrep as2818 mylog.txt
bbc.co.uk、英国广播公司

英国广播公司澳大利亚广播公司IP地址


高级用法
----

*多个文件


>您可以使用通配符或传入多个文件:

$netgrep as444 logs/firstlog.txt logs/secondlog.txt

$netgrep as444 logs/*.txt


(注意netgrep目前还不能处理递归子目录。)


*管道标准输入


$cat input1.txt netgrep br

例如,
akamai.com是否解析到新加坡的任何框?





akamai.com.com
$


有产出-断言被证实的产出-断言被证实的产出



$echo"akamai.com"netgrep-fi
$
;无产出-断言失败




安装
===




快速安装:












一。确保已安装ADN。
2。$sudo easy_安装netgrep


方法2


1。确保已安装adns
2。从
https://github.com/csirtfoundry/netgrep/tarball/master
3中提取tarball。CD[解包到的目录]
4。$sudo python setup.py install

adns python

以下是一些特定于操作系统的安装先决条件和netgrep的方法,
假设一个干净的系统:

*1:linux安装apt get:


$sudo apt get安装python设置工具gcc python dev python adns
$sudo easy_install netgrep

*2:os x安装:

(需要构建许多自制包)
$brew install adns
$sudo easy_install pip
$sudo pip install netgrep

*3:下载并提取tarball,然后(使用apt get):

$sudo apt get install gcc python dev python setuptools python adns
$sudo pythonsetup.py install

*windows


未经测试,可能无法工作。如果如果您想报告它是如何工作的,或者
没有工作,请告诉我。

安装问题:
----


安装adns python时,您可能会收到:

adnsmodule.c:8:20:致命错误:python.h:没有这样的文件或目录


sudo apt get install python dev



implementation notes
=netgrep对日志进行一次传递,提取任何候选域名和它找到的ip地址。检查域名是否解析为
mozilla public suffix列表中的tld。任何不匹配的都将被忽略。

3.检查IP地址以确保它们是有效的IPv4。IPv6目前不受支持,但计划稍后添加此功能。

4。域被异步解析为IP地址。对于数百个IP地址来说,这应该非常快,但如果有数千个,则可能需要一点时间。直接从日志和通过dns解析收集的所有ip均通过批量查询提交给团队cymru的批量whois服务,检索
国家代码和asn.


6。扫描文件,应用国家/地区代码和ASN筛选器,并输出匹配的
行。

因为它使用的网络查找,它不会像强大的grep那样快到任何地方:
http://lists.freebsd.org/pipermail/freebsd-current/2010-august/019310.html?
*在保持内存占用率较低和网络调用
异步/批量(如果可能的话)方面已经付出了很大的努力。
*netgrep目前只处理每行一条记录,因此这意味着没有多行
xml解析。如果这可能有用,请告诉我
[csirtfoundry.com上的chris.horsley]。



对返回
多个A记录(而不仅仅是第一个记录)做了一个非常小的调整。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java编辑并重新运行spring引导单元测试,无需重新加载上下文即可加快测试速度   为什么我不能做演员?   java为什么是线程。join通常用于停止安卓中的线程   java从weblogic服务器调用JSON POST REST服务时收到400:错误请求   java在DeviceAdmin模式禁用时设置身份验证?   java SortedMap的keySet()能否始终安全地强制转换到SortedSet?   安卓 java。lang.NoSuchMethodException可包裹类   java JOGL库安装   javatomcat内存管理   java使用getString()中的变量   java将最小星号设置为评级栏   Java中字符串相等的println()方法。。。它到底是如何工作的?   java如何从文本中输出的数组中放入随机图像