【发布时间】:2018-12-18 12:53:11
【问题描述】:
我的代码有问题。 通过单击按钮,我想确定一个 IP 地址,并从该 IP 确定两个连续的 IP 地址,但我还想检查 IP 地址是否可访问。检查需要几秒钟。我希望显示 IP 地址,并且应该在后台进行检查。 我怎样才能做到这一点?
public void GetIP() {
String mn = tfmn.getText();
String d = "cachea." + mn + ".de.kaufland";
try {
InetAddress i = InetAddress.getByName(d);
int intIP = ByteBuffer.wrap(i.getAddress()).getInt();
intIP += 1496;
i = InetAddress.getByName(String.valueOf(intIP));
String ip = i.getHostAddress();
tfip1.setText(ip);
//Check IP
boolean reachable = i.isReachable(1000);
if (reachable) {
tfipinfo1.setText("IP-Addresse reachable");
tfipinfo1.setStyle("-fx-text-fill: green;");
} else {
tfipinfo1.setText("IP-Adresse ist not reachable");
tfipinfo1.setStyle("-fx-text-inner-color: red;");
}
// next IP
intIP += 1;
InetAddress i2 = InetAddress.getByName(String.valueOf(intIP));
ip = i2.getHostAddress();
tfip2.setText(ip);
//Check IP-Address
boolean reachable2 = i2.isReachable(1000);
if (reachable2) {
tfipinfo2.setText("IP-Adresse ist erreichbar");
tfipinfo2.setStyle("-fx-text-fill: green;");
} else {
tfipinfo2.setText("IP-Adresse ist nicht erreichbar");
tfipinfo2.setStyle("-fx-text-inner-color: red;");
}
//next IP
intIP += 1;
InetAddress i3 = InetAddress.getByName(String.valueOf(intIP));
ip = i3.getHostAddress();
tfip3.setText(ip);
//check IP
boolean reachable3 = i3.isReachable(1000);
if (reachable3) {
tfipinfo3.setText("IP-Adresse ist erreichbar");
tfipinfo3.setStyle("-fx-text-fill: green;");
} else {
tfipinfo3.setText("IP-Adresse ist nicht erreichbar");
tfipinfo3.setStyle("-fx-text-inner-color: red;");
}
} catch (UnknownHostException ex) {
ex.printStackTrace();
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setTitle("Error");
alert.setHeaderText(null);
alert.setContentText("Der Markt existiert nicht!");
alert.showAndWait();
} catch (IOException e) {
e.printStackTrace();
}
}
【问题讨论】:
-
与您的问题无关:请学习 java 命名约定并遵守它们
标签: java button javafx javafx-8