请问 ddns 能否报告一个内网 ip 地址上去。

2022-09-23 09:19:41 +08:00
 beijiaoff

场景是需要用域名代替一个局域网的动态 ip 。

3148 次点击
所在节点    宽带症候群
16 条回复
xipuxiaoyehua
2022-09-23 09:21:17 +08:00
局域网内为啥还需要动态 ip 哈哈哈哈
icySoda
2022-09-23 09:21:54 +08:00
cloudflare 可以
royzheng
2022-09-23 09:25:40 +08:00
可以
Dkngit
2022-09-23 09:25:59 +08:00
自己写程序对接 DNS 服务商的 API ,提交 IP 更新
AoEiuV020CN
2022-09-23 09:27:08 +08:00
能,但都局域网了,静态 ip 或者 dhcp 静态分配不是更香吗,
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
singerll
2022-09-23 09:31:38 +08:00
@xipuxiaoyehua @AoEiuV020CN 很多场景很难固定的,比如物联网卡组成的局域网就没办法固定每张 sim 卡的 ip 。
xipuxiaoyehua
2022-09-23 09:38:14 +08:00
@singerll dns 解析的时候地址填什么都无所谓的,dns 服务商都有更新解析记录的 api 接口,直接调用接口就可以了
neroxps
2022-09-23 09:42:41 +08:00
哈哈,很明显这种需求就是没有局域网权限。
lixinrui000
2022-09-23 10:05:45 +08:00
可以,在内网里面我就这样干,但是注意 dnsmasq 等 DNS 服务器要关闭过滤本地地址功能。
LnTrx
2022-09-23 19:45:32 +08:00
DDNS 的本质就是通过 API 更新 DNS 记录。只要能获取到地址、构造 API 请求,自然就不成问题。
wzdxy
2022-09-24 16:43:34 +08:00
既然是局域网用 openwrt 直接修改 dns 就行吧
lsylsy2
2022-09-25 21:32:30 +08:00
注意你家的 dns 服务器需要开启 rfc1918
Marionic0723
2022-09-26 14:08:20 +08:00
Openwrt 在设置里打开「允许非公网 IP 」即可
datou
2022-09-27 01:40:04 +08:00
局域网内直接用 hostname 访问不就行了?

还折腾啥域名。。。
lihaohenqiang
2022-09-28 22:10:56 +08:00
城域网可以试试,别的没啥用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/882298

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX