例如 1.1.1.1
https://0x01010101
16777216 65536 256 1
https://16843009/
https://0100200401/
0001000000010000000100000001
1
thinkershare 2022-09-19 16:21:45 +08:00
IP V4 本质上是个整数 byte byte byte byte (4 个字节足够), JavaScript 的 number 默认是 float, 你也可以使用定型的 uint32
, 这样, 任何一个 IP 都可以使用一个数值表示, 你在格式化输出的时候是要$IP.toString(2).padStart(32,'0') 就好了嘛. |
2
AoEiuV020CN 2022-09-19 16:22:41 +08:00
不理解,你是在开发浏览器还是在拟定浏览器规范?
|
3
novolunt OP @AoEiuV020CN 让 dns 服务器支持数字类型的 dns 解析,从而规避网络工具对域名的嗅探。
|
4
leonshaw 2022-09-19 16:29:45 +08:00
man inet_aton
|
5
DOLLOR 2022-09-19 16:32:57 +08:00 via Android
你是想在地址栏展示二进制表示的 IP ,还是单纯地想让大家帮你实现一个 IP 转二进制的函数?
又或者是一个 X-Y 问题? |
6
AoEiuV020CN 2022-09-19 16:37:50 +08:00 2
@novolunt #3 更不理解了,
我不知道你前半句是在做什么,但我不觉得你可以实现后半句, |
7
villivateur 2022-09-19 16:39:45 +08:00
涨知识了,我才知道原来浏览器地址栏可以直接输 ip 地址的数字形式
|
8
choury 2022-09-19 16:40:13 +08:00 2
你都有 ip 了,还要用 dns 做什么?
|
10
hanssx 2022-09-19 18:15:06 +08:00
IP 的二进制应该没法表示,另外你都直接访问 IP 了, 已经不会再走域名 DNS 了,想不明白你想解析数字类型 DNS 是啥意思?
|
11
crab 2022-09-19 18:29:25 +08:00
https://00000001.00000001.00000001.00000001
|
12
MossFox 2022-09-19 18:47:59 +08:00
emm, 如果是想把 IP 加进域名记录、但不希望被嗅探,那得不走 DNS 的 A/AAAA 记录。
可以看下存 TXT 记录行不行。这个我没测试过缓存和查询成功率影响,另外就是不清楚有没有专门嗅探 TXT 记录的,可能需要稍微加个密之类再存。这想法不清楚靠不靠谱。 不过这么做的话,想在浏览器里面访问需要在本地额外查出 IP 之后才行。 |
13
novolunt OP |
14
novolunt OP |
15
choury 2022-09-19 22:45:54 +08:00 1
直接范解析就可以了吧,比如*.nnip.io 全部指向 1.1.1.1 ,然后后端服务器拿到 host 字段,然后通过 aaaa 解析到需要的 ip 地址,然后在转发,这样随便你用什么编码方式都行吧
|
16
AoEiuV020CN 2022-09-19 22:46:14 +08:00 via Android
|
17
hxysnail 2022-09-20 08:52:24 +08:00
@novolunt 只要你在浏览器或者客户端做,理论上就不可能保证 URL 不泄露原始地址。DNS 反射只是解决映射问题,不解决保密问题,别人 DNS 解析一下就知道了。那剩下的思路就只有加密,浏览器是没有这个功能的,假设你有一个客户端。想要解密,你得把解密信息放在客户端吧?这样无论你怎么隐藏,理论上都是可以逆向出来的,时间问题而已。
|
18
dangyuluo 2022-09-20 10:46:36 +08:00
|
19
shellus 2022-09-20 11:57:47 +08:00
|