프로그래밍 방식으로 기본 게이트웨이 주소를 찾는 방법을 알고 싶습니다. 나는 WiFi 관리자 (getDhcpInfo()), 에 대한 기본 게이트웨이 주소를 이미 찾았지만 이더넷 모드에서는 찾지 못했습니다. 하시기 바랍니다. 도와주세요 ~~와이파이가 아닌 이더넷을 사용하여 기본 게이트웨이를 얻는 방법
0
A
답변
0
한 번에 두 개의 연결을 원할 경우 프롬프트 명령으로 이동하여 보급 된 경로를 확인할 수 있습니다. 경로에 단일 기본 게이트웨이가 있으면 해당 특정 네트워크에 연결할 수 있습니다. 이 두 개의 기본 게이트웨이가있는 경우에 당신은
덕분에 당신은에 구글 TV를 추가 한 경우 나는이 구글 TV입니다 있으리라 믿고있어
0
, 그것은 도움이 될 수 bowmi 무작위 네트워크 모두에 액세스 할 수 있습니다 표제. 이 어플라이언스에서 게이트웨이를 정적으로 선언하는 방법이 있습니까? 라우터가있는 경우 라우터에 로그인하여 기본 게이트웨이를 찾은 다음 게이트웨이를 장치의 구성 옵션에 직접 넣을 수 있습니다. 여기
0
는 구글 TV 장치에 대한 이더넷에 IP 주소를 찾을 수있는 방법은 다음과 같습니다
private static final String IPADDRESS_PATTERN =
"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
public String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en =
NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr =
intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
String ipAddress = inetAddress.getHostAddress().toString();
if (!inetAddress.isLoopbackAddress()
&& validate(ipAddress)) {
return ipAddress;
}
}
}
} catch (SocketException e) {
// TODO(mjoshi): Auto-generated catch block
e.printStackTrace();
}
return null;
}
/**
* Validate ip address with regular expression
*
* @param ip ip address for validation
* @return true valid ip address, false invalid ip address
*/
public boolean validate(final String ip) {
Pattern pattern = Pattern.compile(IPADDRESS_PATTERN);
Matcher matcher = pattern.matcher(ip);
return matcher.matches();
}
0
이것은 우리가 가능 원격에서 사용하는 코드입니다. 인터페이스가 작동 중인지 확인합니다 (Android 2.3 이상에서만 작동합니다). 사용자가 여러 IP 주소를 가지고 있지만 한 번에 하나만 실시간으로 라이브를보고하는 기기가 필요하기 때문에 필요합니다.
public static String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
if (intf.isUp()) {
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
if (inetAddress instanceof Inet4Address) { // only want ipv4 address
return inetAddress.getHostAddress().toString();
}
}
}
}
}
} catch (Throwable e) {
Log.e(LOG_TAG, "Failed to get the IP address", e);
}
return null;
}
흥미 롭습니다. 호기심 때문에 'getHostAddress'에 의해 반환 된 문자열을 검증해야하는 이유는 무엇입니까? 항상 유효하지 않아야합니까? – yydl
예. ipv6 형식 대신 ipv4를 인쇄하는 것입니다. –
오. 그럼'instanceof Inet4Address' – yydl