Delphi datasnap如何使用IPv6地址
今天看到电信公司开始推广使用IPv6 我也想着用datasnap中间件也使用IPv6,百度一下都是下面的说法:
“有些人说DATASNAP不支持IPv6,只支持IPv4。
这是不正确的。
DATASNAP默认是使用IPv4
在ipv6 环境下 怎样用datasnap?
Params.Values['CommunicationIPVersion'] :='IP_IPv6' “;
网上文章一大抄呀,说的莫名其妙
其实使用IPv6跟中间件没有关系,或是说datasnap 是支持IPv6的;
只用修改一下客户端的连接就可以了
如果使用:SQLConnection 在SQLConnection 的配置中加上 SQLConnection1.Params.Values['CommunicationIPVersion'] :='IP_IPv6' 然后使用IPv6的地址就可以了。
如果使用 DSRestConnection 这个要修改DSRestConnection1.Host 的名字,IPv4直接输入ip 如xxx.xxx.xxx.xxx就可以; 现在使用IPv6 就要把IP地址修改一下:
hostName是IPv6的地址
如果是域名直接在域名上加上[] 就可以了。
HostName:= StringReplace(HostName,':','-',[ rfReplaceAll,rfIgnoreCase]);
DSRestConnection1.Host := HostName+'.ipv6-literal.net';
网上的解释是
纯IPv6地址如何访问Windows共享文件夹[UNC路径]:
在 Microsoft Windows 操作系统中,IPv4 地址是统一命名约定 (UNC) 路径名中的有效位置标识符。但是,冒号是 UNC 路径名中的非法字符。因此,在 UNC 名称中使用 IPv6 地址也是非法的。出于这个原因,Microsoft 实施了一种转录算法,以可以在 UNC 路径中使用的域名形式表示 IPv6 地址。为此,微软在互联网上注册并保留了二级域名ipv6-literal.net(尽管他们在2014年1月放弃了该域名[12])。 IPv6 地址在此名称空间中被转录为主机名或子域名,方式如下:
例子1:2001:db8:85a3:8d3:1319:8a2e:370:7348
2001:db8:85a3:8d3:1319:8a2e:370:7348
将冒号:替换为横杠-,添加后缀.ipv6-literal.net, 写成
2001-db8-85a3-8d3-1319-8a2e-370-7348.ipv6-literal.net
此表示法由 Microsoft 软件在本地自动解析,无需对 DNS 名称服务器进行任何查询。
如果 IPv6 地址包含区域索引,则会将其附加到地址部分的 's' 字符之后:
fe80::1ff:fe23:4567:890a%3
将%替换为s,写成
fe80--1ff-fe23-4567-890as3.ipv6-literal.net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现