如何在java中使用ENUM协议将E.164电话号码映射到DNS名称?

如何在java中使用ENUM协议将E.164电话号码映射到DNS名称?,java,Java,我目前正在开发一个java应用程序,将E.164电话号码映射到DNS名称以获得IP地址。我不知道如何实现。如果有人知道,请帮助我。应该不会太复杂。以下是从相应的 ITU枚举分配特定的 区域,即“e164.arpa”,用于 枚举的IP侧的E.164个数字 网络。RFC 3761定义了 枚举数,如+1 555 42 can 被转换为URI,由 把数字倒过来,分开 带点并添加e164.arpa 后缀:2.4.2.4.5.5.5.1.e164.arpa 编辑 仅详细说明: 把电话号码读成一个字母 字符串

我目前正在开发一个java应用程序,将E.164电话号码映射到DNS名称以获得IP地址。我不知道如何实现。如果有人知道,请帮助我。

应该不会太复杂。以下是从相应的

ITU枚举分配特定的 区域,即“e164.arpa”,用于 枚举的IP侧的E.164个数字 网络。RFC 3761定义了 枚举数,如+1 555 42 can 被转换为URI,由 把数字倒过来,分开 带点并添加e164.arpa 后缀:2.4.2.4.5.5.5.1.e164.arpa

编辑

仅详细说明:

  • 把电话号码读成一个字母 字符串(或将其转换为字符串)
  • 删除任何不是字符的字符 数字(白字“+”等)
  • 在本例中,还原字符串:15554242->24245551
  • 打个圆点 在每个数字后面,这里是:24245551 ->2.4.2.4.5.5.5.1
  • 附加“e164.arpa”

  • 仅此而已-您不需要特殊的API,它只是一种字符串转换

    映射部分非常简单

                        public String getEnum(String number) {
                                String data = number.replaceAll("[^0-9]","");
                                StringBuffer sb = new StringBuffer();
                                for (int i = data.length()-1; i >= 0; i--)
                                {
                                        sb.append(data.charAt(i)).append('.');
                                }
                                sb.append("e164.arpa.");
                                return sb.toString();
                        }
    

    谢谢你的回复。理论上没问题,但我想用java实现这个概念。比如我的应用程序必须得到一个电话号码作为输入,并给出相应的IP地址作为输出。这就是我想要做的。我在一些文章中读到过,比如JSR-161 api就是用来做这件事的。但是我很难得到那个api。如果有人知道链接,请告诉我。好的好的。在得到这个被称为DNS查询字符串的字符串后,使用这个字符串我必须得到对应于那个电话号码的DNS名称。我如何才能做到这一点?这是可以用来进行DNS查找的DNS名称。我想您需要获取SIPURI等的NAPTR记录。Java不支持这一点。你需要使用Java DNS包。谢谢你的回复。我有一些想法。