Skip to content

获取国内 IP 和域名,生成路由表和 PAC 文件

License

Notifications You must be signed in to change notification settings

TomFoxLee/GetCNDomainsAndIPv4

 
 

Repository files navigation

获取国内IP、域名

不想自己生成的可以直接下载

.Net Core 版本

该版本无 gfwlist 相关的生成

所需文件:

自行下载后放在根目录下

输出文件

输出在 output 目录下

跟下面 C++ 基本相同,除了没有 gfwlist.pac

生成所需平台程序

dotnet publish -c release -r $RID

例如:

dotnet publish -c release -r win-x64
dotnet publish -c release -r linux-x64
dotnet publish -c release -r osx-x64

具体RID:https://docs.microsoft.com/zh-cn/dotnet/core/rid-catalog

Win7、Win2008 等运行错误

Failed to load the dll from [?X], HRESULT: 0x80070057

安装补丁:KB2533623

https://support.microsoft.com/en-us/help/2533623/microsoft-security-advisory-insecure-library-loading-could-allow-remot

.Net 编译所需:

https://www.microsoft.com/net/download/all

C++ 版本

所需文件:

自行下载后放在根目录下

输出文件用处

chn_ip.txt

直接放进 ShadowsocksR 目录内,代理规则选择"绕过局域网和大陆"

其实将 delegated-apnic-latest 放入 ShadowsocksR 根目录后重启 ShadowsocksR 也可以自己生成

add.txt

使用以下bat添加路由表,与cmroute.dll同目录

@echo off

net session >nul 2>&1
if not %errorlevel% == 0 (
  echo 请使用右键 "已管理员身份运行" 此脚本
  pause
  exit 1
)

cd /d %~dp0
echo 导入路由表...
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME add.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
pause

del.txt

使用以下bat删除路由表,与cmroute.dll同目录

@echo off

net session >nul 2>&1
if not %errorlevel% == 0 (
  echo 请使用右键 "已管理员身份运行" 此脚本
  pause
  exit 1
)

cd /d %~dp0
echo 移除路由表...
rundll32.exe cmroute.dll,SetRoutes /STATIC_FILE_NAME del.txt /DONT_REQUIRE_URL /IPHLPAPI_ACCESS_DENIED_OK
pause

注:重启系统后自动清空路由表

gfwlist.pac

ShadowsocksR 目录内的 pac.txt(GFWList)。

其实用SSR自己生成的就行了

chndomains.txt

https://github.com/bitbeans/SimpleDnsCrypt

↑可以用来一键自建 Windows 的DNS服务器

给这软件里的屏蔽域名用的。

把国内能正常解析的域名都屏蔽了,只解析国外域名,用备用DNS来解析国内域名。

还有 https://github.com/HMBSbige/DNServer

ss_cnall.pac

ShadowsocksR 目录内的 pac.txt。

客户端设置为"PAC 模式"、代理规则选择"全局",可绕过国内域名和IP,只代理国外的。

因列表过大不支持 Firefox

ss_cnip.pac

ShadowsocksR 目录内的 pac.txt。

客户端设置为"PAC 模式"、代理规则选择"全局",可绕过国内IP。

ss_white.pac

ShadowsocksR 目录内的 pac.txt。

可绕过国内域名。

ss_white_r.pac

ShadowsocksR 目录内的 pac.txt。

仅通过国内域名(国外访问大陆)。

whitelist.acl

ShadowsocksR 安卓客户端用 ACL 文件

可绕过国内域名和IP,只代理国外的。

自用脚本

aria2c -x10 -s10 --https-proxy="https://127.0.0.1:23333" --allow-overwrite=true -Z https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf
getcnip
pause

关于cmroute.dll

我能找到的文档:https://technet.microsoft.com/zh-cn/library/dd672665(v=ws.10).aspx

但是文档实在太老,很多都不适用。而且不知道为什么win10提取的cmroute.dll不能用...

简单的来说,

  • 基本格式:

命令 网络目标 MASK 网络掩码 网关 METRIC 跃点数 IF 接口

  • 命令可以是:

    • ADD
    • DELETE
    • REMOVE_GATEWAY
  • 网关 跃点数 接口一般都默认(default)

  • route print 命令查看 接口列表

  • METRIC 不可 省略,且不知道为什么跃点数只能是default,填数字无效。

About

获取国内 IP 和域名,生成路由表和 PAC 文件

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 74.6%
  • C# 25.4%