[Java]ネットワークカードのローカルIPアドレスとMACアドレスを取得します

普通はたった2つの言葉です:怠惰と怠惰;
成功はたった2つの言葉:苦難と勤勉;
卓越性はたった2つの言葉:あなたと私です。
私に従って、JAVA、春の家族のバケツ、Linuxの操作と保守の知識を0から学び、無知なティーンエイジャーから人生の頂点にあなたを連れて行き、Bai Fumeiと結婚してください!
WeChatパブリックアカウント[ ITは非常に信頼できる ]をフォローし、 技術的な経験を毎日共有してください〜

 

ネットワークカードのローカルIPアドレスとMACアドレスを取得します

1 MACアドレスとは何ですか?

      MACアドレス(英語:メディアアクセス制御アドレス)、文字通りメディアアクセス制御アドレスとして翻訳され、LANアドレス、MACアドレス、イーサネットアドレス、または物理アドレスとも呼ばれます。ネットワークデバイスの場所を確認するために使用されるアドレスです。ではOSIモデル、第3のネットワーク層には責任があるIPアドレス、および第二のデータリンク層は、MACアドレスを担当しています。MACアドレスは、ネットワーク内のネットワークカードを一意に識別するために使用されます。デバイスに1つ以上のネットワークカードがある場合、各ネットワークカードには一意のMACアドレスがあります。

 

2IPアドレスとMACアドレスを取得します

      次に、javaを介してローカルIPアドレスとネットワークカードのMACアドレスを取得します。

2.1IPアドレスを取得する

  /**
   * 获取本机IP地址
   */
  private static String getIpAddress() throws UnknownHostException {
    InetAddress ia = InetAddress.getLocalHost();
    return ia.getHostAddress();
  }

 

2.2ネットワークカードのMACアドレスを取得する

  /**
   * 获取本机使用网卡的MAC地址
   */
  private static String getMacAddress() throws UnknownHostException, SocketException {
    //获取IP地址,输出示例:WCGZ-DZ-013803/10.88.12.117
    InetAddress ia = InetAddress.getLocalHost();
    //获取网卡的MAC地址
    byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
    StringBuffer sb = new StringBuffer("");
    for (int i = 0; i < mac.length; i++) {
      if (i != 0) {
        sb.append("-");
      }
      //字节转换为整数
      int temp = mac[i] & 0xff;
      String str = Integer.toHexString(temp);
      if (str.length() == 1) {
        sb.append("0" + str);
      } else {
        sb.append(str);
      }
    }
    return sb.toString().toUpperCase();
  }

 

3完全なコード

import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.net.UnknownHostException;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class Main {

  public static void main(String[] args) throws UnknownHostException, SocketException {
    //获取本机IP地址
    String ip = getIpAddress();
    //获取本机网卡的MAC地址
    String mac = getMacAddress();
    log.info("IP地址为:{}, 本机网卡MAC地址为:{}", ip, mac);
  }

  /**
   * 获取本机IP地址
   */
  private static String getIpAddress() throws UnknownHostException {
    InetAddress ia = InetAddress.getLocalHost();
    return ia.getHostAddress();
  }

  /**
   * 获取本机使用网卡的MAC地址
   */
  private static String getMacAddress() throws UnknownHostException, SocketException {
    //获取IP地址,输出示例:WCGZ-DZ-013803/10.88.12.117
    InetAddress ia = InetAddress.getLocalHost();
    //获取网卡的MAC地址
    byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
    StringBuffer sb = new StringBuffer("");
    for (int i = 0; i < mac.length; i++) {
      if (i != 0) {
        sb.append("-");
      }
      //字节转换为整数
      int temp = mac[i] & 0xff;
      String str = Integer.toHexString(temp);
      if (str.length() == 1) {
        sb.append("0" + str);
      } else {
        sb.append(str);
      }
    }
    return sb.toString().toUpperCase();
  }
}

 

4テスト結果

      助けになったり、技術サポートが必要な場合は、私に注意してください〜

 

おすすめ

転載: blog.csdn.net/IT_Most/article/details/109313606