MAC 사용자 IP를 얻는 여러 가지 예제 방법
이 글에서는 주로 JAVA에서 사용자의 MAC 주소를 얻는 방법의 다양한 예를 소개합니다. 필요한 친구는
사용자의 MAC 주소를 얻는 Java 방법:
을 참조하세요.방법 1: LAN의 다른 컴퓨터와 로컬 주소 구별
/** * 根据IP地址获取mac地址 * @param ipAddress 127.0.0.1 * @return * @throws SocketException * @throws UnknownHostException */ public static String getLocalMac(String ipAddress) throws SocketException, UnknownHostException { // TODO Auto-generated method stub String str = ""; String macAddress = ""; final String LOOPBACK_ADDRESS = "127.0.0.1"; // 如果为127.0.0.1,则获取本地MAC地址。 if (LOOPBACK_ADDRESS.equals(ipAddress)) { InetAddress inetAddress = InetAddress.getLocalHost(); // 貌似此方法需要JDK1.6。 byte[] mac = NetworkInterface.getByInetAddress(inetAddress) .getHardwareAddress(); // 下面代码是把mac地址拼装成String StringBuilder sb = new StringBuilder(); for (int i = 0; i < mac.length; i++) { if (i != 0) { sb.append("-"); } // mac[i] & 0xFF 是为了把byte转化为正整数 String s = Integer.toHexString(mac[i] & 0xFF); sb.append(s.length() == 1 ? 0 + s : s); } // 把字符串所有小写字母改为大写成为正规的mac地址并返回 macAddress = sb.toString().trim().toUpperCase(); return macAddress; } else { // 获取非本地IP的MAC地址 try { System.out.println(ipAddress); Process p = Runtime.getRuntime() .exec("nbtstat -A " + ipAddress); System.out.println("===process=="+p); InputStreamReader ir = new InputStreamReader(p.getInputStream()); BufferedReader br = new BufferedReader(ir); while ((str = br.readLine()) != null) { if(str.indexOf("MAC")>1){ macAddress = str.substring(str.indexOf("MAC")+9, str.length()); macAddress = macAddress.trim(); System.out.println("macAddress:" + macAddress); break; } } p.destroy(); br.close(); ir.close(); } catch (IOException ex) { } return macAddress; } }
방법 2를 살펴보겠습니다.
package com.alpha.test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; public class GetMac { /** * java获取客户端网卡的MAC地址 * * @param args */ public static void main(String[] args) { GetMac get = new GetMac(); System.out.println("1="+get.getMAC()); System.out.println("2="+get.getMAC("127.0.0.1")); } // 1.获取客户端ip地址( 这个必须从客户端传到后台): // jsp页面下,很简单,request.getRemoteAddr() ; // 因为系统的VIew层是用JSF来实现的,因此页面上没法直接获得类似request,在bean里做了个强制转换 // public String getMyIP() { // try { // FacesContext fc = FacesContext.getCurrentInstance(); // HttpServletRequest request = (HttpServletRequest) fc // .getExternalContext().getRequest(); // return request.getRemoteAddr(); // } catch (Exception e) { // e.printStackTrace(); // } // return ""; // } // 2.获取客户端mac地址 // 调用window的命令,在后台Bean里实现 通过ip来获取mac地址。方法如下: // 运行速度【快】 public String getMAC() { String mac = null; try { Process pro = Runtime.getRuntime().exec("cmd.exe /c ipconfig/all"); InputStream is = pro.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String message = br.readLine(); int index = -1; while (message != null) { if ((index = message.indexOf("Physical Address")) > 0) { mac = message.substring(index + 36).trim(); break; } message = br.readLine(); } System.out.println(mac); br.close(); pro.destroy(); } catch (IOException e) { System.out.println("Can't get mac address!"); return null; } return mac; } // 运行速度【慢】 public String getMAC(String ip) { String str = null; String macAddress = null; try { Process p = Runtime.getRuntime().exec("nbtstat -A " + ip); InputStreamReader ir = new InputStreamReader(p.getInputStream()); LineNumberReader input = new LineNumberReader(ir); for (; true;) { str = input.readLine(); if (str != null) { if (str.indexOf("MAC Address") > 1) { macAddress = str .substring(str.indexOf("MAC Address") + 14); break; } } } } catch (IOException e) { e.printStackTrace(System.out); return null; } return macAddress; } }
3번째 방법이 더 간편합니다.
import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; public class MACAddress { String ip; String mac; public MACAddress (String ip){ this.ip = ip; } public MACAddress (){ this.ip = "0.0.0.0"; } public String getMac(){ try { Process p = Runtime.getRuntime().exec("arp -n"); InputStreamReader ir = new InputStreamReader(p.getInputStream()); LineNumberReader input = new LineNumberReader(ir); p.waitFor(); boolean flag = true; String ipStr = "(" + this.ip + ")"; while(flag) { String str = input.readLine(); if (str != null) { if (str.indexOf(ipStr) > 1) { int temp = str.indexOf("at"); this.mac = str.substring( temp + 3, temp + 20); break; } } else flag = false; } } catch (IOException | InterruptedException e) { e.printStackTrace(System.out); } return this.mac; } public void setIp(String ip){ this.ip = ip; } }
마지막으로 움직임을 확대해야 합니다. 친구 여러분, 주의 깊게 살펴보시기 바랍니다
첫 번째로 말씀드릴 점은: 이 방법은 획득을 지원할 수 있다는 것입니다. 외부 네트워크 시스템의 MAC 주소.
저는 LAN에만 접속할 수 있는 것을 가지고 있었습니다. 방화벽이 설치되어 있으면 접근이 불가능하지만, 이에 대해서는 걱정하지 않으셔도 됩니다.
Baidu의 IP를 테스트했으며 이미 mac 주소를 얻을 수 있습니다
java는 ip를 통해 mac 주소를 얻습니다. - block ip block mac address
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 获取MAC地址 * @author * 2011-12 */ public class GetMacAddress { public static String callCmd(String[] cmd) { String result = ""; String line = ""; try { Process proc = Runtime.getRuntime().exec(cmd); InputStreamReader is = new InputStreamReader(proc.getInputStream()); BufferedReader br = new BufferedReader (is); while ((line = br.readLine ()) != null) { result += line; } } catch(Exception e) { e.printStackTrace(); } return result; } /** * * @param cmd 第一个命令 * @param another 第二个命令 * @return 第二个命令的执行结果 */ public static String callCmd(String[] cmd,String[] another) { String result = ""; String line = ""; try { Runtime rt = Runtime.getRuntime(); Process proc = rt.exec(cmd); proc.waitFor(); //已经执行完第一个命令,准备执行第二个命令 proc = rt.exec(another); InputStreamReader is = new InputStreamReader(proc.getInputStream()); BufferedReader br = new BufferedReader (is); while ((line = br.readLine ()) != null) { result += line; } } catch(Exception e) { e.printStackTrace(); } return result; } /** * * @param ip 目标ip,一般在局域网内 * @param sourceString 命令处理的结果字符串 * @param macSeparator mac分隔符号 * @return mac地址,用上面的分隔符号表示 */ public static String filterMacAddress(final String ip, final String sourceString,final String macSeparator) { String result = ""; String regExp = "((([0-9,A-F,a-f]{1,2}" + macSeparator + "){1,5})[0-9,A-F,a-f]{1,2})"; Pattern pattern = Pattern.compile(regExp); Matcher matcher = pattern.matcher(sourceString); while(matcher.find()){ result = matcher.group(1); if(sourceString.indexOf(ip) <= sourceString.lastIndexOf(matcher.group(1))) { break; //如果有多个IP,只匹配本IP对应的Mac. } } return result; } /** * * @param ip 目标ip * @return Mac Address * */ public static String getMacInWindows(final String ip){ String result = ""; String[] cmd = { "cmd", "/c", "ping " + ip }; String[] another = { "cmd", "/c", "arp -a" }; String cmdResult = callCmd(cmd,another); result = filterMacAddress(ip,cmdResult,"-"); return result; } /** * @param ip 目标ip * @return Mac Address * */ public static String getMacInLinux(final String ip){ String result = ""; String[] cmd = { "/bin/sh", "-c", "ping " + ip + " -c 2 && arp -a" }; String cmdResult = callCmd(cmd); result = filterMacAddress(ip,cmdResult,":"); return result; } /** * 获取MAC地址 * @return 返回MAC地址 */ public static String getMacAddress(String ip){ String macAddress = ""; macAddress = getMacInWindows(ip).trim(); if(macAddress==null||"".equals(macAddress)){ macAddress = getMacInLinux(ip).trim(); } return macAddress; } //做个测试 public static void main(String[] args) { System.out.println(getMacAddress("220.181.111.148")); } }
[관련 권장 사항]
위 내용은 MAC 사용자 IP를 얻는 여러 가지 예제 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











소개: 이 웹사이트에서는 비밀번호를 입력할 때 Mac 키보드가 응답하지 않는 것에 대한 관련 내용을 소개합니다. 도움이 되길 바랍니다. 살펴보겠습니다. Apple Mac 시스템에서 비밀번호를 입력할 수 없는 문제를 해결하는 방법 이 키보드를 다른 컴퓨터에 연결하여 정상적으로 작동하는지 확인할 수도 있습니다. 다른 컴퓨터에서도 같은 문제가 발생한다면 키보드 자체의 문제일 가능성이 높습니다. 키보드를 교체하거나 수리하는 것을 고려할 수 있습니다. Mac 컴퓨터로 처음으로 Alipay에 로그인하면 로그인 인터페이스가 나타나며 비밀번호를 입력할 수 없습니다. 비밀번호 입력 필드에는 "컨트롤을 설치하려면 여기를 클릭하십시오"가 표시되므로 Alipay 로그인에는 보안 컨트롤 설치가 필요합니다. 보안 통제는 귀하가 입력하는 정보(금액, 비밀번호 등)를 암호화하고 보호하여 계정 보안을 향상시킬 수 있습니다. 묶다

많은 Mac 사용자는 장치의 기본 이름을 유지하는 경향이 있으며 변경을 고려하지 않을 수도 있습니다. 많은 사람들이 초기 설정에서 "Johnny's MacBook Air" 또는 간단히 "iMac"과 같은 이름을 고수하는 것을 선택합니다. Mac의 이름을 변경하는 방법을 배우는 것은 특히 여러 장치를 사용하는 경우 장치를 빠르게 구별하고 관리하는 데 도움이 되므로 매우 유용한 기술입니다. 다음으로 macOS 시스템에서 컴퓨터 이름, 호스트 이름, Bonjour 이름(로컬 호스트 이름)을 변경하는 방법을 단계별로 알려드리겠습니다. Mac 이름을 변경해야 하는 이유는 무엇입니까? Mac의 이름을 변경하면 개성을 보여줄 수 있을 뿐만 아니라 사용자 경험을 개선하는 데에도 도움이 됩니다. Mac을 개인화하세요. 기본 이름이 마음에 들지 않을 수 있으므로 원하는 이름으로 변경하세요.

소개: 이 웹사이트에서는 Mac 설치 프로그램의 비밀번호를 잊어버린 경우에 대한 내용을 소개합니다. 도움이 되기를 바랍니다. 살펴보겠습니다. Apple 컴퓨터 설치 소프트웨어의 비밀번호를 잊어버린 경우 수행할 작업 먼저 휴대폰 설정에서 iCloud를 찾아 클릭하여 엽니다. 다음으로 계좌번호와 비밀번호를 입력해주세요. 로그인 버튼 아래에 ID나 비밀번호를 잊어버린 경우 묻는 작은 단어가 있습니다. 이 옵션을 클릭하세요. 일반적으로 로그인 인터페이스에 잘못된 비밀번호를 여러 번 입력하면 MacBook Pro에 바인딩된 Apple ID를 사용하여 비밀번호를 재설정하라는 메시지가 표시됩니다. 비밀번호 재설정을 완료하려면 시스템에서 안내하는 단계를 따르기만 하면 됩니다. 3. 먼저 Mac을 종료한 다음, 전원 버튼을 누른 상태에서 즉시 키보드의 com을 길게 누르세요.

서문: 오늘 이 사이트는 Mac에 pkg 파일을 설치하는 것과 관련된 내용을 공유합니다. 현재 직면한 문제를 해결할 수 있다면 이 사이트를 팔로우하고 지금 시작하는 것을 잊지 마세요! 운영 체제를 업그레이드하기 위해 이전 버전의 macos pkg를 설치할 수 없습니다. 노트북이 이전 운영 체제 버전을 사용하고 있는 경우 최신 운영 체제 버전으로 업그레이드하는 것이 좋습니다. 이전 버전은 최신 macOS 시스템 설치를 지원하지 않을 수 있기 때문입니다. 디스크 유틸리티에서 "삭제"를 선택한 다음 형식에서 Macos 확장자를 선택하고 암호화 옵션을 확인하지 않으며 apfs 형식을 선택하지 않고 마지막으로 "삭제" 버튼을 클릭하여 완료할 수 없는 문제를 해결합니다. macOS 설치. 애플리케이션 아이콘을 App으로 시작하는 파일로 드래그하세요.

소개: 오늘 이 사이트는 Apple Mac에서 타이핑할 때 페이지를 넘기는 방법에 대한 관련 콘텐츠를 공유합니다. 현재 직면한 문제를 해결할 수 있다면 이 사이트를 팔로우하고 지금 시작하는 것을 잊지 마세요! Apple MacBook 노트북에서 터치패드 사용에 대한 팁 Apple 컴퓨터에서 두 손가락 슬라이딩을 설정하는 단계는 다음과 같습니다. 컴퓨터 바탕 화면에서 "설정" 아이콘을 찾아 클릭합니다. 설정 인터페이스에서 "터치패드"를 선택한 다음 "확대/축소 스크롤"을 클릭하세요. 스크롤 줌 옵션에서 '스크롤 방향: 자연'을 체크하면 설정이 완료됩니다. Apple 컴퓨터에서 두 손가락 스와이프 방법을 설정하는 것은 쉽습니다. 먼저 컴퓨터를 켜고 화면 상단의 설정 아이콘을 클릭하세요. 설정 인터페이스에서 "터치패드" 옵션을 선택하세요. 그런 다음 "스크롤 확대/축소"를 클릭하고 "스크롤 방향"이 선택되어 있는지 확인하세요.

최근 일부 친구들이 음성 메시지를 텍스트로 자동 변환하도록 WeChat Mac을 설정하는 방법에 대해 편집자에게 문의했습니다. 다음은 음성 메시지를 텍스트로 자동 변환하도록 WeChat Mac을 설정하는 방법입니다. 1단계: 먼저, Mac 버전의 WeChat을 엽니다. 그림에 표시된 대로: 2단계: 다음으로 "설정"을 클릭합니다. 그림에 표시된 대로: 3단계: 그런 다음 "일반"을 클릭합니다. 그림에 표시된 대로: 4단계: 그런 다음 "채팅 음성 메시지를 텍스트로 자동 변환" 옵션을 선택합니다. 그림과 같이: 5단계: 마지막으로 창을 닫습니다. 그림과 같이:

소개: 이 기사는 Mac에서 하드 디스크로 파일을 잘라내는 것과 관련된 내용을 소개하기 위해 작성되었습니다. 도움이 되기를 바랍니다. 살펴보겠습니다. Mac 컴퓨터에서 모바일 하드 드라이브로 사진을 내보내는 방법 Finder 또는 사진 응용 프로그램을 사용하여 사진을 모바일 하드 드라이브로 내보낼 수 있습니다. Finder를 사용하여 사진을 내보낼 때 먼저 모바일 하드 드라이브가 Mac에 연결되어 있고 Mac에서 성공적으로 인식되는지 확인하세요. Mac에서 하드 드라이브로 사진을 전송하는 방법은 간단합니다. 먼저 모바일 하드 드라이브를 컴퓨터에 연결한 후 [런처] 아이콘을 엽니다. 그런 다음 팝업 창에서 [사진] 아이콘을 찾아 클릭하세요. 열린 [사진] 창에서 [Shift] 키를 길게 누르세요.

머리말: 이 글은 맥 블랙애플 부팅 방법에 대한 관련 내용을 소개하기 위해 작성되었습니다. 여러분에게 도움이 되기를 바랍니다. 한번 살펴보겠습니다. Black Apple OC 부팅 빠른 구성 자습서 1. loverconfigurator 소프트웨어 인터페이스에 들어간 후 "부팅 매개변수" 설정을 클릭합니다. 기본 부팅 볼륨 이름은 Black Apple 시스템을 설치할 때 지워진 디스크 이름으로 설정됩니다. 그런데 Benjuannai? 0을 클릭한 다음 오른쪽 하단에 있는 저장을 클릭하고 컴퓨터를 다시 시작한 다음 러버 부팅 인터페이스를 Apple 로고 부팅 인터페이스로 교체합니다. 보안 부팅은 서명되지 않은 부트로더가 내부 디스크나 USB 드라이브에서 부팅되는 것을 효과적으로 방지합니다. 단, Clover나 OC부팅에서는 보안부팅 기능을 지원하지 않습니다. 시작한다
