Java 如何在不使用内置库函数InetAddress.getbyName()的情况下获取任何主机的IP地址?

Java 如何在不使用内置库函数InetAddress.getbyName()的情况下获取任何主机的IP地址?,java,sockets,dns,Java,Sockets,Dns,我正在制作自己的迭代DNSresolver,其中我需要主机的ip来使用。。。但是Datagrampacket需要InetAddresstype对象。所以我不得不使用库函数 InetAddress ipAddress = InetAddress.getByName(DNSAddress); .... //some code .... DatagramPacket dnsReqPacket = new DatagramPacket(dnsFrame, dnsFrame.length,

我正在制作自己的迭代DNSresolver,其中我需要主机的ip来使用。。。但是Datagrampacket需要InetAddresstype对象。所以我不得不使用库函数

InetAddress ipAddress = InetAddress.getByName(DNSAddress);
....
//some code
....
DatagramPacket dnsReqPacket = new DatagramPacket(dnsFrame, dnsFrame.length,             ip, DNSServerPort);
....
//some code
因此,我在想,不使用inetAddress库是否可以生成自己的getbyName()函数?

您可以使用。它从地址的原始(网络)表示形式创建一个
InetAddress
对象

该方法的名称相当混乱,因为与其他方法不同,它不执行反向查找:

此方法不阻塞,即不执行反向名称服务查找


使用使用
getByAddress
创建的
InetAddress
以及
DatagramPacket
DatagramSocket
也不一定触发名称解析,因此不存在无限递归的风险(如果Java实现尝试使用您自己的DNS实现执行名称解析).

是的,在DNS提供程序中使用JNDI。如何创建一个函数,该函数可以为我提供与InetAddress库的getByName()函数返回的相同的输出?有参考代码吗?我只是想从头开始!我在问是否可以“不使用InetAddress库”执行相同的功能。。如果可能的话,我实际上不打算使用图书馆。。我可以自己创建一个套接字或类似的东西来生成要在DatagrapPacket中作为参数传递的IP吗??或者是否有与InetAddress库的getByName()函数相同的从头开始的代码?我假设您担心如果
InetAddress
本身使用DNS,会出现错误行为/无限循环。对于
getByAddress
,它不这样做。它本质上是针对原始
字节[]
地址的一个不太薄的包装。