许多脚本和api捆绑在一个易于使用的CLI中
lazy-network-engineer-jaaacck的Python项目详细描述
懒散网络工程师(LNE)
Lazy Network Engineer(lne)是一个工具和api的融合,它们被放在一个易于使用的脚本中
特点
子网计算器
基本子网计算器
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -sc 10.7.90.24/27
╒══════════════╤═════════════════╕
│ Address │ 10.7.90.24 │
├──────────────┼─────────────────┤
│ Mask │ 255.255.255.224 │
├──────────────┼─────────────────┤
│ CIDR │ 10.7.90.24/27 │
├──────────────┼─────────────────┤
│ Network │ 10.7.90.0 │
├──────────────┼─────────────────┤
│ Broadcast │ 10.7.90.31 │
├──────────────┼─────────────────┤
│ Wildcard │ 0.0.0.31 │
├──────────────┼─────────────────┤
│ Usable hosts │ 30 │
╘══════════════╧═════════════════╛
IP WHOIS
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -sc 10.7.90.24/27
╒══════════════╤═════════════════╕
│ Address │ 10.7.90.24 │
├──────────────┼─────────────────┤
│ Mask │ 255.255.255.224 │
├──────────────┼─────────────────┤
│ CIDR │ 10.7.90.24/27 │
├──────────────┼─────────────────┤
│ Network │ 10.7.90.0 │
├──────────────┼─────────────────┤
│ Broadcast │ 10.7.90.31 │
├──────────────┼─────────────────┤
│ Wildcard │ 0.0.0.31 │
├──────────────┼─────────────────┤
│ Usable hosts │ 30 │
╘══════════════╧═════════════════╛
https://stat.ripe.net/docs/data_api
示例
使用成熟的数据库对提供的IP运行WHOIS
^{pr2}$IP声誉
使用来自https://www.abuseipdb.com/的API
提供“虐待分数”-越接近100,你就越有信心举报的虐待是正确的。所有的滥用行为都会被报告,大部分是由Fail2Ban自动报告的。在
还显示有关请求的IP的最后几个报告
提供的域不是PTR记录,而是最终用户报告的内容。在
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -r 45.146.164.166
+-------------------------+----------------------------------------------------+
| IP Address | 45.146.164.166 |
+=========================+====================================================+
| Domain | mastercommunications.ru |
+-------------------------+----------------------------------------------------+
| ISP | Mastercom LLC |
+-------------------------+----------------------------------------------------+
| Country | RU |
+-------------------------+----------------------------------------------------+
| Abuse Score | 100 |
+-------------------------+----------------------------------------------------+
| Total Reports (90 days) | 1606 |
+-------------------------+----------------------------------------------------+
| Last Reported | 2020-11-15T13:03:04+00:00 |
+-------------------------+----------------------------------------------------+
| Latest Reports | Nov 15 13:03:01 scw-6657dc sshd[30568]: |
| | pam_unix(sshd:auth): authentication failure; |
| | logname= uid=0 euid=0 tty=ssh ruser= |
| | rhost=45.146.164.166 |
| | Nov 15 13:03:01 scw-6657dc sshd[30568]: |
| | pam_unix(sshd:auth): authentication failure; |
| | logname= uid=0 euid=0 tty=ssh ruser= |
| | rhost=45.146.164.166 |
| | Nov 15 13:03:03 scw-6657dc sshd[30568]: Failed |
| | password for invalid user admin from |
| | 45.146.164.166 port 8889 ssh2 |
| | ... |
+-------------------------+----------------------------------------------------+
BGP
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -r 45.146.164.166
+-------------------------+----------------------------------------------------+
| IP Address | 45.146.164.166 |
+=========================+====================================================+
| Domain | mastercommunications.ru |
+-------------------------+----------------------------------------------------+
| ISP | Mastercom LLC |
+-------------------------+----------------------------------------------------+
| Country | RU |
+-------------------------+----------------------------------------------------+
| Abuse Score | 100 |
+-------------------------+----------------------------------------------------+
| Total Reports (90 days) | 1606 |
+-------------------------+----------------------------------------------------+
| Last Reported | 2020-11-15T13:03:04+00:00 |
+-------------------------+----------------------------------------------------+
| Latest Reports | Nov 15 13:03:01 scw-6657dc sshd[30568]: |
| | pam_unix(sshd:auth): authentication failure; |
| | logname= uid=0 euid=0 tty=ssh ruser= |
| | rhost=45.146.164.166 |
| | Nov 15 13:03:01 scw-6657dc sshd[30568]: |
| | pam_unix(sshd:auth): authentication failure; |
| | logname= uid=0 euid=0 tty=ssh ruser= |
| | rhost=45.146.164.166 |
| | Nov 15 13:03:03 scw-6657dc sshd[30568]: Failed |
| | password for invalid user admin from |
| | 45.146.164.166 port 8889 ssh2 |
| | ... |
+-------------------------+----------------------------------------------------+
https://bgpview.docs.apiary.io/#reference/0/asn/view-asn-details?console=1
ASN查找
对提供的BGPView运行API调用。如果超过50个前缀被公布,它将被截断以节省空间
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py --asn 13009
+--------------------+---------------------------------------------------------+
| Name | VData Ltd |
+====================+=========================================================+
| ASN | 13009 |
+--------------------+---------------------------------------------------------+
| Country | GB |
+--------------------+---------------------------------------------------------+
| Email Contact | abuse@redcentricplc.com, peering@redcentricplc.com, |
| | support@redcentricplc.com, |
| | darren.marshall@redcentricplc.com, |
| | abuse@redcenticplc.com, sean.cavenay@redcentricplc.com |
+--------------------+---------------------------------------------------------+
| Abuse Contact | abuse@redcentricplc.com, abuse@redcenticplc.com |
+--------------------+---------------------------------------------------------+
| Traffic Estimation | 5-10Gbps |
+--------------------+---------------------------------------------------------+
| IPv4 Prefixes | 45.14.252.0/24, 46.235.168.0/21, 85.118.0.0/19, |
| | 91.209.34.0/24, 94.199.144.0/21, 151.147.184.0/24, |
| | 151.147.185.0/24, 151.147.186.0/24, 151.147.187.0/24, |
| | 178.250.96.0/21, 185.65.100.0/22, 185.81.160.0/22, |
| | 185.95.175.0/24, 188.95.128.0/21, 192.166.136.0/24, |
| | 193.164.114.0/24, 213.146.128.0/19, 216.245.64.0/18 |
+--------------------+---------------------------------------------------------+
| IPv6 Prefixes | 2a02:2998::/32, 2a03:a000::/32 |
+--------------------+---------------------------------------------------------+
对等状态
MAC供应商查找
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py --asn 13009
+--------------------+---------------------------------------------------------+
| Name | VData Ltd |
+====================+=========================================================+
| ASN | 13009 |
+--------------------+---------------------------------------------------------+
| Country | GB |
+--------------------+---------------------------------------------------------+
| Email Contact | abuse@redcentricplc.com, peering@redcentricplc.com, |
| | support@redcentricplc.com, |
| | darren.marshall@redcentricplc.com, |
| | abuse@redcenticplc.com, sean.cavenay@redcentricplc.com |
+--------------------+---------------------------------------------------------+
| Abuse Contact | abuse@redcentricplc.com, abuse@redcenticplc.com |
+--------------------+---------------------------------------------------------+
| Traffic Estimation | 5-10Gbps |
+--------------------+---------------------------------------------------------+
| IPv4 Prefixes | 45.14.252.0/24, 46.235.168.0/21, 85.118.0.0/19, |
| | 91.209.34.0/24, 94.199.144.0/21, 151.147.184.0/24, |
| | 151.147.185.0/24, 151.147.186.0/24, 151.147.187.0/24, |
| | 178.250.96.0/21, 185.65.100.0/22, 185.81.160.0/22, |
| | 185.95.175.0/24, 188.95.128.0/21, 192.166.136.0/24, |
| | 193.164.114.0/24, 213.146.128.0/19, 216.245.64.0/18 |
+--------------------+---------------------------------------------------------+
| IPv6 Prefixes | 2a02:2998::/32, 2a03:a000::/32 |
+--------------------+---------------------------------------------------------+
使用https://macvendors.com/api获取有关MAC地址供应商的信息。在
正则表达式
它将把MAC地址与下面的regex相匹配,这应该符合所有通用标准:
regex = ("^([0-9A-Fa-f]{2}[:-])" +
"{5}([0-9A-Fa-f]{2})|" +
"([0-9a-fA-F]{4}\\." +
"[0-9a-fA-F]{4}\\." +
"[0-9a-fA-F]{4})$")
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) »python3 main.py --mac-lookup 18-31-BF-69-9D-46
╒═══════════════════╤═══════════════════════╕
│ MAC Address │ Vendor │
├───────────────────┼───────────────────────┤
│ 18-31-BF-69-9D-46 │ ASUSTek COMPUTER INC. │
╘═══════════════════╧═══════════════════════╛
速率限制计算器
jack@jumpbox:~/python/lazy-network-engineer(master⚡) »python3 main.py --mac-lookup 18-31-BF-69-9D-46
╒═══════════════════╤═══════════════════════╕
│ MAC Address │ Vendor │
├───────────────────┼───────────────────────┤
│ 18-31-BF-69-9D-46 │ ASUSTek COMPUTER INC. │
╘═══════════════════╧═══════════════════════╛
基于Ciscos推荐的速率限制计算器https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/qos_plcshp/configuration/15-mt/qos-plcshp-15-mt-book/qos-plcshp-oview.html
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -rl 1000000
+-----------------+---------+
| Function | Bits |
+=================+=========+
| Requested Speed | 1000000 |
+-----------------+---------+
| Normal Burst | 187500 |
+-----------------+---------+
| Extended Burst | 375000 |
+-----------------+---------+
位转换器
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -rl 1000000
+-----------------+---------+
| Function | Bits |
+=================+=========+
| Requested Speed | 1000000 |
+-----------------+---------+
| Normal Burst | 187500 |
+-----------------+---------+
| Extended Burst | 375000 |
+-----------------+---------+
获取给定的输入并将其转换为所有其他数据格式。在
选择了5位小数作为浮点数,因为这样既不会使输出过于复杂,也能对输出的变量保持一定的洞察力。如果你想要更多的洞察力,这可以通过第二个参数来提供。具体如下
此命令应接受大多数输入“100Mb、100Mb、100Mb、100Mb、100bit、100b、100byte、100b”。如果您没有使用完整的单词,请确保您的注释正确:)
示例
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -c 100byte
╒══════════╤═══════════╕
│ Byte │ 100 │
╞══════════╪═══════════╡
│ Bit │ 800.00000 │
├──────────┼───────────┤
│ Byte │ 100.00000 │
├──────────┼───────────┤
│ Kilobit │ 0.78160 │
├──────────┼───────────┤
│ Kilobyte │ 0.09760 │
├──────────┼───────────┤
│ Megabit │ 0.00076 │
├──────────┼───────────┤
│ Megabyte │ 0.00010 │
├──────────┼───────────┤
│ Gigabit │ 0.00000 │
├──────────┼───────────┤
│ Gigabyte │ 0.00000 │
├──────────┼───────────┤
│ Terabit │ 0.00000 │
├──────────┼───────────┤
│ Terabyte │ 0.00000 │
╘══════════╧═══════════╛
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -c 100byte
╒══════════╤═══════════╕
│ Byte │ 100 │
╞══════════╪═══════════╡
│ Bit │ 800.00000 │
├──────────┼───────────┤
│ Byte │ 100.00000 │
├──────────┼───────────┤
│ Kilobit │ 0.78160 │
├──────────┼───────────┤
│ Kilobyte │ 0.09760 │
├──────────┼───────────┤
│ Megabit │ 0.00076 │
├──────────┼───────────┤
│ Megabyte │ 0.00010 │
├──────────┼───────────┤
│ Gigabit │ 0.00000 │
├──────────┼───────────┤
│ Gigabyte │ 0.00000 │
├──────────┼───────────┤
│ Terabit │ 0.00000 │
├──────────┼───────────┤
│ Terabyte │ 0.00000 │
╘══════════╧═══════════╛
如果要指定比标准5更多的小数位数,请提供第二个值作为整数:
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -c 100byte 10
╒══════════╤════════════════╕
│ Byte │ 100 │
╞══════════╪════════════════╡
│ Bit │ 800.0000000000 │
├──────────┼────────────────┤
│ Byte │ 100.0000000000 │
├──────────┼────────────────┤
│ Kilobit │ 0.7816000000 │
├──────────┼────────────────┤
│ Kilobyte │ 0.0976000000 │
├──────────┼────────────────┤
│ Megabit │ 0.0007629600 │
├──────────┼────────────────┤
│ Megabyte │ 0.0000953674 │
├──────────┼────────────────┤
│ Gigabit │ 0.0000007451 │
├──────────┼────────────────┤
│ Gigabyte │ 0.0000000931 │
├──────────┼────────────────┤
│ Terabit │ 0.0000000007 │
├──────────┼────────────────┤
│ Terabyte │ 0.0000000001 │
╘══════════╧════════════════╛
SSL检查
使用SSL Labs API根据请求的域-https://www.ssllabs.com/projects/ssllabs-apis/index.html检查SSL证书
它将提供一个滚动的输出,因为它扫描每个主机对一个域,并告诉你它在哪个阶段。在
一旦测试完成,它将为你提供每个主机的成绩和一个链接到完整的报告页面
示例
进展
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -ssl wintelguy.com
+----------+---------------+
| Host | wintelguy.com |
+==========+===============+
| Port | 443 |
+----------+---------------+
| Protocol | http |
+----------+---------------+
| Status | IN_PROGRESS |
+----------+---------------+
+------------+--------------+
| IP Address | 3.222.63.253 |
+============+==============+
| Status | Ready |
+------------+--------------+
| Grade | B |
+------------+--------------+
| Progress | 100 |
+------------+--------------+
+--------------+------------------------+
| IP Address | 34.234.60.54 |
+==============+========================+
| Status | In progress |
+--------------+------------------------+
| Current Step | TESTING_BLEICHENBACHER |
+--------------+------------------------+
| Progress | 90 |
+--------------+------------------------+
完成
jack@jumpbox:~/python/lazy-network-engineer(master⚡) » python3 main.py -ssl https://wintelguy.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------+-----------------------+
| Host | https://wintelguy.com |
+============+=======================+
| Port | 443 |
+------------+-----------------------+
| Protocol | http |
+------------+-----------------------+
| IP Address | 3.222.63.253 |
+------------+-----------------------+
| Grade | B |
+------------+-----------------------+
| Warnings | 0 |
+------------+-----------------------+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+------------+-----------------------+
| Host | https://wintelguy.com |
+============+=======================+
| Port | 443 |
+------------+-----------------------+
| Protocol | http |
+------------+-----------------------+
| IP Address | 34.234.60.54 |
+------------+-----------------------+
| Grade | B |
+------------+-----------------------+
| Warnings | 0 |
+------------+-----------------------+
https://www.ssllabs.com/ssltest/analyze.html?d=https://wintelguy.com
- 项目
标签: