java를 사용하여 로컬 시스템의 기본 게이트웨이를 가져 오려고합니다. dos 나 shell 명령을 실행하여 얻는 방법을 알고 있지만 반입 할 수있는 다른 방법이 있습니까? 또한 기본 및 보조 dns ip를 가져와야합니다.Java에서 기본 게이트웨이 가져 오기
6
A
답변
0
쉬운 방법은 없습니다. 로컬 시스템 명령을 호출하고 출력을 구문 분석하거나 구성 파일이나 레지스트리를 읽어야합니다. 이 작업을 수행하는 데 익숙한 플랫폼 독립적 인 방법은 없습니다. 모든 작업을 실행하려면 Linux, Mac 및 Windows를 코딩해야합니다.
게이트웨이를 포함
How can I determine the IP of my router/gateway in Java?를 참조하십시오, 당신은 ifconfig를 사용하거나이를 얻을뿐만 아니라 ipconfig를 할 수있다. DNS 정보의 경우, Windows에서 ipconfig와 같은 다른 시스템 명령을 호출하거나 Linux 또는 mac에서 /etc/resolv.conf를 구문 분석해야합니다.
0
Java에서 기본 게이트웨이 또는 DNS 서버 주소를 얻는 표준 인터페이스가 현재 없습니다. 쉘 명령이 필요합니다.
0
My way은 다음과 같습니다 때문에 데이터 그램 (UDP)를 사용
try(DatagramSocket s=new DatagramSocket())
{
s.connect(InetAddress.getByAddress(new byte[]{1,1,1,1}), 0);
return NetworkInterface.getByInetAddress(s.getLocalAddress()).getHardwareAddress();
}
, 그것은 어디서나 연결되지
때문에 포트 번호가 그냥 연결할 수 필요가 없습니다 의미 및 원격 주소 (1.1.1.1) 될 수있다 라우팅 가능.ipconfig
의 도움으로
윈도우에서
1
을 :
import java.awt.Desktop;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URI;
public final class Router {
private static final String DEFAULT_GATEWAY = "Default Gateway";
private Router() {
}
public static void main(String[] args) {
if (Desktop.isDesktopSupported()) {
try {
Process process = Runtime.getRuntime().exec("ipconfig");
try (BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()))) {
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.trim().startsWith(DEFAULT_GATEWAY)) {
String ipAddress = line.substring(line.indexOf(":") + 1).trim(),
routerURL = String.format("http://%s", ipAddress);
// opening router setup in browser
Desktop.getDesktop().browse(new URI(routerURL));
}
System.out.println(line);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
여기에 내가 내 라우터의 기본 게이트웨이 IP 주소를 얻고, 그리고 브라우저에서 열면 내 라우터의 설정 페이지를 참조하십시오.
관련 문제
- 1. Java에서 FQDN 가져 오기
- 2. Java에서 창 가져 오기
- 3. Java에서 아키텍처 가져 오기
- 4. PHP - 게이트웨이/라우터 IP, UPnP 가져 오기
- 5. Java에서 BIOS 시간 가져 오기
- 6. 기본 프로그램 가져 오기
- 7. Java에서 달 이름 가져 오기
- 8. Java에서 인터넷에서 데이터 가져 오기
- 9. Java에서 모드 값 가져 오기
- 10. PacketTrace 기본 게이트웨이
- 11. DHCP가없는 기본 게이트웨이 검색
- 12. java에서 기본 게이트웨이 IP 및 MAC 주소를 가져올 수 있습니까?
- 13. DropDownList 기본 객체 가져 오기
- 14. UIImage에서 기본 NSData * 가져 오기
- 15. iPhone 기본 앱 + 결제 게이트웨이
- 16. Java에서 반복되는 가져 오기 피하기 : 가져 오기를 상속합니까?
- 17. Android에서 Java에서 SQLite SUM 가져 오기
- 18. Java에서 사용자 이름 그룹 가져 오기
- 19. Java에서 QuadCurve2D의 실제 범위 가져 오기
- 20. Java에서 OS 메모리 크기 가져 오기
- 21. Java에서 자바 스크립트의 모든 변수 가져 오기
- 22. Java에서 드라이브 크기 가져 오기 5
- 23. Java에서 구성 요소의 좌표 가져 오기
- 24. Java에서 클래스 계층 구조 가져 오기?
- 25. Java에서 TIFF 이미지의 픽셀 값 가져 오기
- 26. java에서 URL의 절대 경로 가져 오기
- 27. Java에서 HTTP 응답 크기 가져 오기
- 28. Java에서 문서에서 xml 문자열 가져 오기
- 29. Java에서 Windows "로드 평균"가져 오기
- 30. Java에서 ASCII-6 인코딩 가져 오기
이것은 항상 기본 게이트웨이를 반환하지는 않습니다. 패킷 라우팅은 여러 요소를 통해 결정됩니다. 그 중 하나는 대상 주소입니다. 기본 게이트웨이가 목적지 주소를 수락하거나 라우팅 할 수없는 경우 패킷은 다른 경로를 통해 전달됩니다.이 경로는 사용 가능한 모든 경로 중 최악의 경로 일 수도 있고 그렇지 않을 수도 있습니다. 네트워크 어댑터 메트릭에 따라 두 번째 최상의 경로 또는 중간에있는 경로 일 수도 있습니다. 전제 조건으로 소프트웨어를 작성하지 마십시오. 전체 비즈니스 상황이 악화됩니다. – specializt
이것은 꽤 독창적입니다. 목적지 주소에 따라 다릅니다. [인터넷에있는 실제 주소] (http://serverfault.com/q/132805/92104)를 사용하여 적어도 유효한 경로를 확보하고 있는지 확인하는 것이 좋습니다. 기본 경로가 아닙니다. –
DNS를 사용하는 경우 여기에 주소 대신 호스트 이름을 사용할 수 있습니다. 'a.root-servers.net'은 항상 존재한다는 보장이 있으며, 여러분의 지역 네트워크에는 존재하지 않을 것입니다. –