ip-check


Nameip-check JSON
Version 1.5.9 PyPI version JSON
download
home_pageNone
SummaryPowerful cdn network speed test utils.
upload_time2024-04-12 07:50:03
maintainerNone
docs_urlNone
authornobitaqaq
requires_python>=3.8
licenseNone
keywords cdn speed test network speed
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ip-check

高效的cdn 测速工具,用于ip 优选。

## 安装

```shell
pip install ip-check --upgrade
```

## 使用方法

```shell
ip-check --help
usage: ip-check [-h] [-w WHITE_LIST] [-b BLOCK_LIST] [-pl PREFER_LOCS] [-pp PREFER_PORTS] [-lv MAX_VT_IP_COUNT] [-lr MAX_RT_IP_COUNT]
                [-ls MAX_ST_IP_COUNT] [-p PORT] [-H HOST] [-dr] [-dv] [-ds] [-o OUTPUT] [-f] [-s SPEED] [-r RTT] [-l LOSS] [-c CONFIG] [-v] [-ns]
                [--version]
                source [source ...]

ip-check 参数

positional arguments:
  source                测试源文件

optional arguments:
  -h, --help            show this help message and exit
  -w WHITE_LIST, --white_list WHITE_LIST
                        偏好ip参数, 格式为: "expr1,expr2", 如"8,9" 会筛选8和9开头的ip
  -b BLOCK_LIST, --block_list BLOCK_LIST
                        屏蔽ip参数, 格式为: "expr1,expr2", 如"8,9" 会过滤8和9开头的ip
  -pl PREFER_LOCS, --prefer_locs PREFER_LOCS
                        偏好国家地区选择, 格式为: "expr1,expr2", 如"hongkong,japan" 会筛选HongKong 和Japan 地区的ip
  -pp PREFER_PORTS, --prefer_ports PREFER_PORTS
                        针对ip:port 格式的测试源筛选端口, 格式为: "expr1,expr2", 如"443,8443" 会筛选出443 和8443 端口的ip
  -lv MAX_VT_IP_COUNT, --max_vt_ip_count MAX_VT_IP_COUNT
                        最大用来检测有效(valid) ip数量限制,0表示使用config.ini中的配置
  -lr MAX_RT_IP_COUNT, --max_rt_ip_count MAX_RT_IP_COUNT
                        最大用来检测rtt ip数量限制,0表示使用config.ini中的配置
  -ls MAX_ST_IP_COUNT, --max_st_ip_count MAX_ST_IP_COUNT
                        最大用来检测下载(speed) 速度的ip数量限制,0表示使用config.ini中的配置
  -p PORT, --port PORT  用来检测的端口
  -H HOST, --host HOST  可用性域名
  -dr, --disable_rt     是否禁用RTT 测试
  -dv, --disable_vt     是否禁用可用性测试
  -ds, --disable_st     是否禁用速度测试
  -o OUTPUT, --output OUTPUT
                        输出文件
  -f, --fast_check      是否执行快速测试
  -s SPEED, --speed SPEED
                        期望ip的最低网速 (kB/s)
  -r RTT, --rtt RTT     期望的最大rtt (ms)
  -l LOSS, --loss LOSS  期望的最大丢包率
  -c CONFIG, --config CONFIG
                        配置文件
  -v, --verbose         显示调试信息
  -ns, --no_save        是否忽略保存测速结果文件
  --version             show program's version number and exit
```

## 配置文件

执行`ip-check-cfg` 会生成`config.ini`,  按照备注修改即可。

## 使用示例

```shell
# 文本参数,文本中内容支持ip、ip cidr、支持ipv6
ip-check test.txt

# ip 参数,支持ip、ip cidr、支持ipv6
ip-check 192.168.1.1/32
ip-check fe80::/ 10
ip-check 1.1.1.1:443

# 禁用可用性测试,某些情况可用性测试失效,可临时禁用。
ip-check test.txt -dv
# 禁用rtt 测试,某些情况rtt 测试失效,可临时禁用。
ip-check test.txt -dr

# ip 偏好,假设你偏好8和9 开头的ip
ip-check test.txt -w "8,9"
# ip 偏好,假设你喜欢8.222和8.223 开头的ip
ip-check test.txt -w "8.222,8.223"
# ip 厌恶,假设你不喜欢13和14 开头的ip
ip-check test.txt -b "13,14"
# ip 厌恶,假设你不喜欢131.13和131.14 开头的ip
ip-check test.txt -b "131.13,131.14"
# 按地区筛选ip
ip-check test.txt -pl "japan,hongkong"
# ip:port 格式的测试源只测试端口为8443 的测试源
ip-check 7.8.9.10:443 7.8.9.10:8443 -pp 8443

# 指定测试端口,缺省为443
ip-check test.txt -p 8443

# 指定输出文件,默认为result 与源文件的拼接
ip-check test.txt -o better-ips.txt


# 限制参与可用性测试ip 的数量
ip-check test.txt -lv 100
# 限制参与rtt 测试ip 的数量
ip-check test.txt -lr 100
# 限制参与下载速度测试的ip 的数量
ip-check test.txt -ls 100

# 快速测试, 开启此选项后,当到达测试时长一半下载时间后,最高网速仍未达到期网网速的一半则退出此ip 下载测速
ip-check test.txt -f

# 指定期网网速,单位 kB/s
ip-check test.txt -s 20000

# 指定期望的最大rtt, 单位 ms
ip-check test.txt -r 500
```

以上所有可选选项可联合使用达到最终效果。

## Others

使用geo 信息需要自我下载`GeoLite2-City.mmdb` 和 `GeoLite2-ASN.mmdb`,可通过igeo-db 输入url 下载。

### igeo-info

查看ip 归属地信息的工具

```shell
igeo-info -h
usage: igeo-info [-h] sources [sources ...]

geo-info 获取ip(s) 的归属地信息

positional arguments:
  sources     待获取归属地信息的ip(s)

optional arguments:
  -h, --help  show this help message and exit
```

### igeo-dl

下载mmdb 数据库的工具

```shell
igeo-dl --help
usage: igeo-dl [-h] [-u URL] [-p PROXY]

igeo-dl 升级/下载geo 数据库

optional arguments:
  -h, --help            show this help message and exit
  -u URL, --url URL     geo 数据库下载地址, 要求结尾包含GeoLite2-City.mmdb 或GeoLite2-ASN.mmdb
  -p PROXY, --proxy PROXY
                        下载时使用的代理
```

### igeo-cfg

`igeo-dl` 的配置文件,用于下载mmdb 数据库,建议去github 找寻。

```shell
igeo-cfg -h
usage: igeo-cfg [-h]

geo-cfg 编辑geo config

optional arguments:
  -h, --help  show this help message and exit
```

## Release Note

- V1.5.9
  - 针对多端口测试源增加通过端口筛选测试源的策略

- V1.5.8
  - 修复rtt 测试中丢包率控制失效问题

- V1.5.7
  - 增加按地区优选ip 策略
  - 修复黑白名单不支持多分组策略

- V1.5.6
  - 黑白名单过滤优化

- V1.5.4
  - 修正带路径分隔符输出文件名异常的bug

- V1.5.3
  - 把ip 输入源解析重构,方便以后拓展

- V1.5.2
  - ip 传递参数新增ip:port 格式

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ip-check",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "cdn, speed test, network speed",
    "author": "nobitaqaq",
    "author_email": "xiaoleigs@gmail.com",
    "download_url": null,
    "platform": null,
    "description": "# ip-check\n\n\u9ad8\u6548\u7684cdn \u6d4b\u901f\u5de5\u5177\uff0c\u7528\u4e8eip \u4f18\u9009\u3002\n\n## \u5b89\u88c5\n\n```shell\npip install ip-check --upgrade\n```\n\n## \u4f7f\u7528\u65b9\u6cd5\n\n```shell\nip-check --help\nusage: ip-check [-h] [-w WHITE_LIST] [-b BLOCK_LIST] [-pl PREFER_LOCS] [-pp PREFER_PORTS] [-lv MAX_VT_IP_COUNT] [-lr MAX_RT_IP_COUNT]\n                [-ls MAX_ST_IP_COUNT] [-p PORT] [-H HOST] [-dr] [-dv] [-ds] [-o OUTPUT] [-f] [-s SPEED] [-r RTT] [-l LOSS] [-c CONFIG] [-v] [-ns]\n                [--version]\n                source [source ...]\n\nip-check \u53c2\u6570\n\npositional arguments:\n  source                \u6d4b\u8bd5\u6e90\u6587\u4ef6\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -w WHITE_LIST, --white_list WHITE_LIST\n                        \u504f\u597dip\u53c2\u6570, \u683c\u5f0f\u4e3a: \"expr1,expr2\", \u5982\"8,9\" \u4f1a\u7b5b\u90098\u548c9\u5f00\u5934\u7684ip\n  -b BLOCK_LIST, --block_list BLOCK_LIST\n                        \u5c4f\u853dip\u53c2\u6570, \u683c\u5f0f\u4e3a: \"expr1,expr2\", \u5982\"8,9\" \u4f1a\u8fc7\u6ee48\u548c9\u5f00\u5934\u7684ip\n  -pl PREFER_LOCS, --prefer_locs PREFER_LOCS\n                        \u504f\u597d\u56fd\u5bb6\u5730\u533a\u9009\u62e9, \u683c\u5f0f\u4e3a: \"expr1,expr2\", \u5982\"hongkong,japan\" \u4f1a\u7b5b\u9009HongKong \u548cJapan \u5730\u533a\u7684ip\n  -pp PREFER_PORTS, --prefer_ports PREFER_PORTS\n                        \u9488\u5bf9ip:port \u683c\u5f0f\u7684\u6d4b\u8bd5\u6e90\u7b5b\u9009\u7aef\u53e3, \u683c\u5f0f\u4e3a: \"expr1,expr2\", \u5982\"443,8443\" \u4f1a\u7b5b\u9009\u51fa443 \u548c8443 \u7aef\u53e3\u7684ip\n  -lv MAX_VT_IP_COUNT, --max_vt_ip_count MAX_VT_IP_COUNT\n                        \u6700\u5927\u7528\u6765\u68c0\u6d4b\u6709\u6548(valid) ip\u6570\u91cf\u9650\u5236,0\u8868\u793a\u4f7f\u7528config.ini\u4e2d\u7684\u914d\u7f6e\n  -lr MAX_RT_IP_COUNT, --max_rt_ip_count MAX_RT_IP_COUNT\n                        \u6700\u5927\u7528\u6765\u68c0\u6d4brtt ip\u6570\u91cf\u9650\u5236,0\u8868\u793a\u4f7f\u7528config.ini\u4e2d\u7684\u914d\u7f6e\n  -ls MAX_ST_IP_COUNT, --max_st_ip_count MAX_ST_IP_COUNT\n                        \u6700\u5927\u7528\u6765\u68c0\u6d4b\u4e0b\u8f7d(speed) \u901f\u5ea6\u7684ip\u6570\u91cf\u9650\u5236,0\u8868\u793a\u4f7f\u7528config.ini\u4e2d\u7684\u914d\u7f6e\n  -p PORT, --port PORT  \u7528\u6765\u68c0\u6d4b\u7684\u7aef\u53e3\n  -H HOST, --host HOST  \u53ef\u7528\u6027\u57df\u540d\n  -dr, --disable_rt     \u662f\u5426\u7981\u7528RTT \u6d4b\u8bd5\n  -dv, --disable_vt     \u662f\u5426\u7981\u7528\u53ef\u7528\u6027\u6d4b\u8bd5\n  -ds, --disable_st     \u662f\u5426\u7981\u7528\u901f\u5ea6\u6d4b\u8bd5\n  -o OUTPUT, --output OUTPUT\n                        \u8f93\u51fa\u6587\u4ef6\n  -f, --fast_check      \u662f\u5426\u6267\u884c\u5feb\u901f\u6d4b\u8bd5\n  -s SPEED, --speed SPEED\n                        \u671f\u671bip\u7684\u6700\u4f4e\u7f51\u901f (kB/s)\n  -r RTT, --rtt RTT     \u671f\u671b\u7684\u6700\u5927rtt (ms)\n  -l LOSS, --loss LOSS  \u671f\u671b\u7684\u6700\u5927\u4e22\u5305\u7387\n  -c CONFIG, --config CONFIG\n                        \u914d\u7f6e\u6587\u4ef6\n  -v, --verbose         \u663e\u793a\u8c03\u8bd5\u4fe1\u606f\n  -ns, --no_save        \u662f\u5426\u5ffd\u7565\u4fdd\u5b58\u6d4b\u901f\u7ed3\u679c\u6587\u4ef6\n  --version             show program's version number and exit\n```\n\n## \u914d\u7f6e\u6587\u4ef6\n\n\u6267\u884c`ip-check-cfg` \u4f1a\u751f\u6210`config.ini`,  \u6309\u7167\u5907\u6ce8\u4fee\u6539\u5373\u53ef\u3002\n\n## \u4f7f\u7528\u793a\u4f8b\n\n```shell\n# \u6587\u672c\u53c2\u6570\uff0c\u6587\u672c\u4e2d\u5185\u5bb9\u652f\u6301ip\u3001ip cidr\u3001\u652f\u6301ipv6\nip-check test.txt\n\n# ip \u53c2\u6570\uff0c\u652f\u6301ip\u3001ip cidr\u3001\u652f\u6301ipv6\nip-check 192.168.1.1/32\nip-check fe80::/ 10\nip-check 1.1.1.1:443\n\n# \u7981\u7528\u53ef\u7528\u6027\u6d4b\u8bd5\uff0c\u67d0\u4e9b\u60c5\u51b5\u53ef\u7528\u6027\u6d4b\u8bd5\u5931\u6548\uff0c\u53ef\u4e34\u65f6\u7981\u7528\u3002\nip-check test.txt -dv\n# \u7981\u7528rtt \u6d4b\u8bd5\uff0c\u67d0\u4e9b\u60c5\u51b5rtt \u6d4b\u8bd5\u5931\u6548\uff0c\u53ef\u4e34\u65f6\u7981\u7528\u3002\nip-check test.txt -dr\n\n# ip \u504f\u597d\uff0c\u5047\u8bbe\u4f60\u504f\u597d8\u548c9 \u5f00\u5934\u7684ip\nip-check test.txt -w \"8,9\"\n# ip \u504f\u597d\uff0c\u5047\u8bbe\u4f60\u559c\u6b228.222\u548c8.223 \u5f00\u5934\u7684ip\nip-check test.txt -w \"8.222,8.223\"\n# ip \u538c\u6076\uff0c\u5047\u8bbe\u4f60\u4e0d\u559c\u6b2213\u548c14 \u5f00\u5934\u7684ip\nip-check test.txt -b \"13,14\"\n# ip \u538c\u6076\uff0c\u5047\u8bbe\u4f60\u4e0d\u559c\u6b22131.13\u548c131.14 \u5f00\u5934\u7684ip\nip-check test.txt -b \"131.13,131.14\"\n# \u6309\u5730\u533a\u7b5b\u9009ip\nip-check test.txt -pl \"japan,hongkong\"\n# ip:port \u683c\u5f0f\u7684\u6d4b\u8bd5\u6e90\u53ea\u6d4b\u8bd5\u7aef\u53e3\u4e3a8443 \u7684\u6d4b\u8bd5\u6e90\nip-check 7.8.9.10:443 7.8.9.10:8443 -pp 8443\n\n# \u6307\u5b9a\u6d4b\u8bd5\u7aef\u53e3\uff0c\u7f3a\u7701\u4e3a443\nip-check test.txt -p 8443\n\n# \u6307\u5b9a\u8f93\u51fa\u6587\u4ef6\uff0c\u9ed8\u8ba4\u4e3aresult \u4e0e\u6e90\u6587\u4ef6\u7684\u62fc\u63a5\nip-check test.txt -o better-ips.txt\n\n\n# \u9650\u5236\u53c2\u4e0e\u53ef\u7528\u6027\u6d4b\u8bd5ip \u7684\u6570\u91cf\nip-check test.txt -lv 100\n# \u9650\u5236\u53c2\u4e0ertt \u6d4b\u8bd5ip \u7684\u6570\u91cf\nip-check test.txt -lr 100\n# \u9650\u5236\u53c2\u4e0e\u4e0b\u8f7d\u901f\u5ea6\u6d4b\u8bd5\u7684ip \u7684\u6570\u91cf\nip-check test.txt -ls 100\n\n# \u5feb\u901f\u6d4b\u8bd5\uff0c \u5f00\u542f\u6b64\u9009\u9879\u540e\uff0c\u5f53\u5230\u8fbe\u6d4b\u8bd5\u65f6\u957f\u4e00\u534a\u4e0b\u8f7d\u65f6\u95f4\u540e\uff0c\u6700\u9ad8\u7f51\u901f\u4ecd\u672a\u8fbe\u5230\u671f\u7f51\u7f51\u901f\u7684\u4e00\u534a\u5219\u9000\u51fa\u6b64ip \u4e0b\u8f7d\u6d4b\u901f\nip-check test.txt -f\n\n# \u6307\u5b9a\u671f\u7f51\u7f51\u901f\uff0c\u5355\u4f4d kB/s\nip-check test.txt -s 20000\n\n# \u6307\u5b9a\u671f\u671b\u7684\u6700\u5927rtt\uff0c \u5355\u4f4d ms\nip-check test.txt -r 500\n```\n\n\u4ee5\u4e0a\u6240\u6709\u53ef\u9009\u9009\u9879\u53ef\u8054\u5408\u4f7f\u7528\u8fbe\u5230\u6700\u7ec8\u6548\u679c\u3002\n\n## Others\n\n\u4f7f\u7528geo \u4fe1\u606f\u9700\u8981\u81ea\u6211\u4e0b\u8f7d`GeoLite2-City.mmdb` \u548c `GeoLite2-ASN.mmdb`\uff0c\u53ef\u901a\u8fc7igeo-db \u8f93\u5165url \u4e0b\u8f7d\u3002\n\n### igeo-info\n\n\u67e5\u770bip \u5f52\u5c5e\u5730\u4fe1\u606f\u7684\u5de5\u5177\n\n```shell\nigeo-info -h\nusage: igeo-info [-h] sources [sources ...]\n\ngeo-info \u83b7\u53d6ip(s) \u7684\u5f52\u5c5e\u5730\u4fe1\u606f\n\npositional arguments:\n  sources     \u5f85\u83b7\u53d6\u5f52\u5c5e\u5730\u4fe1\u606f\u7684ip(s)\n\noptional arguments:\n  -h, --help  show this help message and exit\n```\n\n### igeo-dl\n\n\u4e0b\u8f7dmmdb \u6570\u636e\u5e93\u7684\u5de5\u5177\n\n```shell\nigeo-dl --help\nusage: igeo-dl [-h] [-u URL] [-p PROXY]\n\nigeo-dl \u5347\u7ea7/\u4e0b\u8f7dgeo \u6570\u636e\u5e93\n\noptional arguments:\n  -h, --help            show this help message and exit\n  -u URL, --url URL     geo \u6570\u636e\u5e93\u4e0b\u8f7d\u5730\u5740, \u8981\u6c42\u7ed3\u5c3e\u5305\u542bGeoLite2-City.mmdb \u6216GeoLite2-ASN.mmdb\n  -p PROXY, --proxy PROXY\n                        \u4e0b\u8f7d\u65f6\u4f7f\u7528\u7684\u4ee3\u7406\n```\n\n### igeo-cfg\n\n`igeo-dl` \u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u7528\u4e8e\u4e0b\u8f7dmmdb \u6570\u636e\u5e93\uff0c\u5efa\u8bae\u53bbgithub \u627e\u5bfb\u3002\n\n```shell\nigeo-cfg -h\nusage: igeo-cfg [-h]\n\ngeo-cfg \u7f16\u8f91geo config\n\noptional arguments:\n  -h, --help  show this help message and exit\n```\n\n## Release Note\n\n- V1.5.9\n  - \u9488\u5bf9\u591a\u7aef\u53e3\u6d4b\u8bd5\u6e90\u589e\u52a0\u901a\u8fc7\u7aef\u53e3\u7b5b\u9009\u6d4b\u8bd5\u6e90\u7684\u7b56\u7565\n\n- V1.5.8\n  - \u4fee\u590drtt \u6d4b\u8bd5\u4e2d\u4e22\u5305\u7387\u63a7\u5236\u5931\u6548\u95ee\u9898\n\n- V1.5.7\n  - \u589e\u52a0\u6309\u5730\u533a\u4f18\u9009ip \u7b56\u7565\n  - \u4fee\u590d\u9ed1\u767d\u540d\u5355\u4e0d\u652f\u6301\u591a\u5206\u7ec4\u7b56\u7565\n\n- V1.5.6\n  - \u9ed1\u767d\u540d\u5355\u8fc7\u6ee4\u4f18\u5316\n\n- V1.5.4\n  - \u4fee\u6b63\u5e26\u8def\u5f84\u5206\u9694\u7b26\u8f93\u51fa\u6587\u4ef6\u540d\u5f02\u5e38\u7684bug\n\n- V1.5.3\n  - \u628aip \u8f93\u5165\u6e90\u89e3\u6790\u91cd\u6784\uff0c\u65b9\u4fbf\u4ee5\u540e\u62d3\u5c55\n\n- V1.5.2\n  - ip \u4f20\u9012\u53c2\u6570\u65b0\u589eip:port \u683c\u5f0f\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Powerful cdn network speed test utils.",
    "version": "1.5.9",
    "project_urls": null,
    "split_keywords": [
        "cdn",
        " speed test",
        " network speed"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3e13bac600348088204bd2dce3f1dd063bb98d2ae47c8a6cb2f55c4b779d7a04",
                "md5": "e86f8cce7330930a097614e74b8aae7e",
                "sha256": "ee6b97ae641852663ea0a8934b9cc3988340a4c5bec60f68b084a478c37bfa75"
            },
            "downloads": -1,
            "filename": "ip_check-1.5.9-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e86f8cce7330930a097614e74b8aae7e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 38794,
            "upload_time": "2024-04-12T07:50:03",
            "upload_time_iso_8601": "2024-04-12T07:50:03.758947Z",
            "url": "https://files.pythonhosted.org/packages/3e/13/bac600348088204bd2dce3f1dd063bb98d2ae47c8a6cb2f55c4b779d7a04/ip_check-1.5.9-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-12 07:50:03",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "ip-check"
}
        
Elapsed time: 0.22635s