我正在使用Clojure,但我可以阅读Java,所以这不是Clojure特定的问题.这甚至似乎都不适用于Java.
我正在尝试使用isReachable实现一些'ping'功能.我正在使用的代码是这样的:
(.isReachable (java.net.InetAddress/getByName "www.microsoft.com") 5000)
Run Code Online (Sandbox Code Playgroud)
我的一位好朋友翻译成Java:
public class NetTest {
public static void main (String[] args) throws Exception{
String host = "acidrayne.net";
InetAddress a = InetAddress.getByName(host);
System.out.println(a.isReachable(10000));
}
}
Run Code Online (Sandbox Code Playgroud)
这两个都返回false.我想我一定是做错了,但谷歌的研究告诉我的不同之处.我很困惑!
我有以下小代码片段:
InetAddress address = InetAddress.getByName(host);
if(address.isReachable(TIMEOUT_IN_MILLISECONDS)) {
System.out.println(host + " is reachable.");
String hostName = address.getHostName();
System.out.println(hostName);
}
Run Code Online (Sandbox Code Playgroud)
如果找到机器,getHostName()方法需要相当长的时间才能执行.有人可以解释一下原因吗?
我正在使用python-netaddr库来处理IP地址和子网.我阅读了netaddrd的完整文档:Netaddr文档.但没有找到解决我问题的方法.我有一个IP地址和子网我想通过使用它们获得该IP的前缀.这样我就可以打印所有进入子网的ip.
例如:
Ip Address: 192.0.2.0
Subnet Network: 255.255.255.0
It should return the prefix which is : 24
Run Code Online (Sandbox Code Playgroud) 我不明白,为什么下面的代码打印0.0.9.229而不是127.0.0.1.任何人都可以告诉我,热门解决这个问题吗?
String ha = InetAddress.getLocalHost().getHostAddress();
System.out.println(ha);
Run Code Online (Sandbox Code Playgroud)
UPD:在Ubuntu上运行的代码
/ etc/hosts文件
127.0.0.1 localhost
127.0.1.1 2533
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试创建一个聊天服务器作为一项任务,并希望每条消息都包含一个标题.它将包含ipv4地址,后跟一个字母,然后是用户名
我可以很容易地从字节解码字符串字母,但现在我很难从字节解码ipv4地址
到目前为止,字节的表示是这样的
[-64,-88,1,5]
在ipv4点分四格式中,它将是192.168.1.5
我只需要一种方法来尝试将整数的四个字节解码为字符串或沿着这些行的某些东西
感谢:D
我编写了以下代码,以获取我在计算机上使用的eth0接口的IPv4地址。但是,fe80:x:x:x:xxx:xxxx:xxxx:xxxx由于我正在查找IPv4地址,因此代码仅查找未返回的代码。
这是代码。
interfaceName = "eth0";
NetworkInterface networkInterface = NetworkInterface.getByName(interfaceName);
Enumeration<InetAddress> inetAddress = networkInterface.getInetAddresses();
InetAddress currentAddress;
currentAddress = inetAddress.nextElement();
while(inetAddress.hasMoreElements())
{
System.out.println(currentAddress);
if(currentAddress instanceof Inet4Address && !currentAddress.isLoopbackAddress())
{
ip = currentAddress.toString();
break;
}
currentAddress = inetAddress.nextElement();
}
Run Code Online (Sandbox Code Playgroud) 我试图以字符串形式获取套接字连接的IP.
我正在使用一个框架,它返回SocketAddress收到的消息.我怎样才能把它变成InetSocketAddress或InetAddress?
在文件C:\ WINDOWS\system32\drivers\etc\hosts中,我只有以下行
192.168.0.23 computername.domain.com computername
Run Code Online (Sandbox Code Playgroud)
我跑的时候
InetAddress localhost = InetAddress.getLocalHost();
System.out.println("getLocalHost:" + localhost);
Run Code Online (Sandbox Code Playgroud)
我希望输出是
getLocalHost:computername/192.168.0.23
Run Code Online (Sandbox Code Playgroud)
但它出来了
getLocalHost:computername/192.168.0.107
Run Code Online (Sandbox Code Playgroud)
关于为什么会这样的想法?是否应该在其他文件中进行配置?
编辑
InetAddress.getByName('computername')
Run Code Online (Sandbox Code Playgroud)
产生与之相同的IP getLocalHost().
伙计们,
我正在寻找一个Java代码片段,它提供给定IP的下一个地址.
所以getNextIPV4Address("10.1.1.1")回归"10.1.1.2".
字符串运算可以完成,但最终可能会变得混乱.这样做是否有一种很正式的方式.
谢谢你的时间.
我正在使用python 2.6.6,我不允许更改它.我有一个IPv4地址的排序列表.我需要找到覆盖列表中所有IP地址的最小网络.最小的网络可以是CIDR,也可以是具有子网掩码的网络地址.我还没有找到一种使用netaddr模块的简单方法.这是一个例子:
x=['192.168.0.0', '192.168.2.245', '192.168.255.255']
cidr = get_cidr_for_addresses(x)
print cidr ##should print '192.168.0.0/16'
Run Code Online (Sandbox Code Playgroud) inetaddress ×10
java ×8
ip-address ×4
ip ×2
ipv4 ×2
localhost ×2
networking ×2
python ×2
class ×1
clojure ×1
host ×1
ping ×1
python-2.7 ×1
sockets ×1