Als ich googelte, kam diese Seite vorerst heraus. http://www.yukun.info/blog/2008/10/java-inetaddress-getlocalhost.html
Es ist das Ergebnis des Kopierens und Ausführens des Kreises. Eine IP-Adresse, die ich nicht erkannte, wurde ausgegeben.
Wenn Sie den Kopf neigen, starten Sie die Eingabeaufforderung und ipconfig.
"Wer bist du!"
Ich weiß nicht, was in anderen Umgebungen passiert, aber zumindest habe ich festgestellt, dass ich die Wi-Fi-IP mit InetAddress.getLocalHost () auf diesem Computer nicht erhalten konnte. Selbst wenn Sie weiter googeln, werden nur Android-Artikel angezeigt, sodass Sie anscheinend an eine andere Methode denken müssen, selbst wenn Sie sie drücken.
Da Sie es an der Eingabeaufforderung sehen können, dachte ich, dass ich auf der Java-Seite damit herumspielen sollte, also beschloss ich, es zu versuchen. Ich habe gegoogelt, dass Java auch System () in C-Sprache haben sollte.
http://d.hatena.ne.jp/takami_hiroki/20101221/p1
Basierend darauf, wenn Sie die Ausgabe vom OS-Befehl ipconfig erhalten und anzeigen ...
Ja, war es. Der in der Eingabeaufforderung der japanischen Windows-Version verwendete Zeichencode lautet Shift-JIS. Ich habe versucht, die Ausgabe und die Zeichenkette nach der Erfassung in UTF-8 zu erstellen, aber es wurde nicht wahr, ob ich ein kleiner Fisch oder eine Spezifikation war.
Als ich nachforschte, stellte sich heraus, dass "in Shift-JIS geschriebene Textdateien gelesen werden können". Sie können die Textdatei verwenden, die durch Ausführen von "ipconfig> ip.txt" generiert wurde. Als Fluss
ipconfig > ip.txt ↓ Geben Sie den Zeichencode als Shift-JIS an und lesen Sie ip.txt ↓ Suche mit indexOf () oder split () ↓ Löschen Sie ip.txt mit einem unschuldigen Gesicht
Was für ein Ort wie.
Hierbei ist zu beachten, dass die Hauptteilseite, die den OS-Befehl trifft, und die Schreibseite, die das Ergebnis nach dem Treffer zurückgibt, parallel verarbeitet werden. Wenn Sie mit dem Lesen beginnen, ohne auf den Abschluss des Schreibvorgangs zu warten, wird der IOException-Lehrer natürlich kommen.
Main.java
public class Main {
public static void main(String[] args) {
System.out.println(new getWiFiIP().get());
}
}
getWiFiIP.java
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
public class getWiFiIP {
private String ip="";
public String get(){
return ip;
}
public getWiFiIP() {
try {
ProcessBuilder pb=new ProcessBuilder("cmd.exe", "/c", "ipconfig",">","ip.txt");
Process process = pb.start(); //Starten Sie den Prozess
process.waitFor(); //Warten Sie, bis der Export abgeschlossen ist
ArrayList<String> list=new Text_read("ip.txt").getText(); //Textdatei lesen
int cnt=list.indexOf("Wireless LAN adapter Wi-Fi:");////////////////////////////////////////////////
for(;;){
if(list.get(cnt).indexOf("IPv4")==-1){
cnt++;
}else{
break;
} //Wi aus der Zeichenkettengruppe gelesen und erfasst-IP-Adresse der Fi-Verbindung(IPv4)Suchen nach
}////////////////////////////////////////////////////////////////////////////////////////////////////
String[] temp=list.get(cnt).split(":"); //"IPv4-Adresse. . . . . . . . . . . .: ×××.×××.×××.Da es "XXX" ist, teilen Sie es
ip= temp[1]; //Ersetzen Sie die erfasste IP-Adresse
new File("ip.txt").delete(); //Mayt ip.Txt löschen
////////////////////////////////////////////////////Die folgende Fehlerbehandlung
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
if(ip.equals(""))ip= "Fehlgeschlagen zu bekommen";
}
}
Text_read.java
import java.io.*;
import java.util.ArrayList;
/////////////////////////////////////////////////////////
//Lesen Sie die gesamte Textdatei und speichern Sie sie in ArrayList.//
/////////////////////////////////////////////////////////
public class Text_read {
private ArrayList<String>text=new ArrayList<String>(); //ArrayList zur Speicherung
public Text_read(String path/*Dateipfad*/){
try {
BufferedReader br =new BufferedReader(new InputStreamReader(new FileInputStream(path), "Shift_JIS"));
for(;;){
text.add(br.readLine());
if(text.get(text.size()-1)==null){
text.remove(text.size()-1);
break;
}
}
br.close();
}catch(IOException e){
System.out.println("E / A-Fehler");
}
}
public ArrayList<String> getText(){
return text;
}
}
Dies löste es vorerst, aber wenn jemand einen einfacheren Weg kennt, lass es mich wissen ...
Recommended Posts