场景是需要用域名代替一个局域网的动态 ip 。
1
xipuxiaoyehua 2022-09-23 09:21:17 +08:00 via iPhone
局域网内为啥还需要动态 ip 哈哈哈哈
|
2
icySoda 2022-09-23 09:21:54 +08:00 via iPhone
cloudflare 可以
|
3
royzheng 2022-09-23 09:25:40 +08:00
可以
|
4
Dkngit 2022-09-23 09:25:59 +08:00
自己写程序对接 DNS 服务商的 API ,提交 IP 更新
|
5
AoEiuV020CN 2022-09-23 09:27:08 +08:00
能,但都局域网了,静态 ip 或者 dhcp 静态分配不是更香吗,
|
6
olaloong 2022-09-23 09:29:21 +08:00
当然能,我用的 dns.he.net 的服务,结合定时任务每 10 分钟报告一次网卡 ip ,脚本也简单
--- $ddns_domain="" $ddns_key="" $wlan_ip=(Get-NetIPAddress -InterfaceAlias WLAN -AddressFamily IPv4).IPAddress $ddns_url="http://dyn.dns.he.net/nic/update?hostname=$ddns_domain&myip=$wlan_ip" $netAssembly = [Reflection.Assembly]::GetAssembly([System.Net.Configuration.SettingsSection]) if ($netAssembly) { $bindingFlags = [Reflection.BindingFlags] "Static,GetProperty,NonPublic"; $settingsType = $netAssembly.GetType("System.Net.Configuration.SettingsSectionInternal"); $instance = $settingsType.InvokeMember("Section", $bindingFlags, $null, $null, @()); if($instance) { $bindingFlags = "NonPublic","Instance"; $useUnsafeHeaderParsingField = $settingsType.GetField("useUnsafeHeaderParsing", $bindingFlags); if($useUnsafeHeaderParsingField) { $useUnsafeHeaderParsingField.SetValue($instance, $true); }; }; }; $pair = "$($ddns_domain):$($ddns_key)" $encodedCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($Pair)) $headers = @{ Authorization = "Basic $encodedCredentials" } Invoke-WebRequest -Uri $ddns_url -Method Get -Headers $headers |
7
singerll 2022-09-23 09:31:38 +08:00
@xipuxiaoyehua @AoEiuV020CN 很多场景很难固定的,比如物联网卡组成的局域网就没办法固定每张 sim 卡的 ip 。
|
8
xipuxiaoyehua 2022-09-23 09:38:14 +08:00
@singerll dns 解析的时候地址填什么都无所谓的,dns 服务商都有更新解析记录的 api 接口,直接调用接口就可以了
|
9
neroxps 2022-09-23 09:42:41 +08:00
哈哈,很明显这种需求就是没有局域网权限。
|
10
lixinrui000 2022-09-23 10:05:45 +08:00
可以,在内网里面我就这样干,但是注意 dnsmasq 等 DNS 服务器要关闭过滤本地地址功能。
|
11
LnTrx 2022-09-23 19:45:32 +08:00
DDNS 的本质就是通过 API 更新 DNS 记录。只要能获取到地址、构造 API 请求,自然就不成问题。
|
12
wzdxy 2022-09-24 16:43:34 +08:00
既然是局域网用 openwrt 直接修改 dns 就行吧
|
13
lsylsy2 2022-09-25 21:32:30 +08:00 via Android
注意你家的 dns 服务器需要开启 rfc1918
|
14
Marionic0723 2022-09-26 14:08:20 +08:00 via Android
Openwrt 在设置里打开「允许非公网 IP 」即可
|
15
datou 2022-09-27 01:40:04 +08:00
局域网内直接用 hostname 访问不就行了?
还折腾啥域名。。。 |
16
lihaohenqiang 2022-09-28 22:10:56 +08:00 via iPhone
城域网可以试试,别的没啥用
|