• 软件项目或者产品有时候会用到本机网卡的物理MAC地址、IP地址、硬盘序列号加上使用软体名称和地址进行安全加密验证,例如结合MAC地址进行登录验证等等,当然这种项目一般在局域网内运行,能相对提高系统的安全性


    java读取MAC地址的工具方法,可以读取windows和非windows操作系统(linux,unix、或者MAC Mini下IOS系统)下的MAC地址

     基于验证的方法可以离线验证和在线验证

    在线验证是通过调用webservicej接口通过服务器端比对判断和验证传入的参数 通过就PASS或者不通过就失败 过期重新申请授权码

    这首先首次必须通过首次申请授权码 当管理者赋予给用户授权码时 用户可以通过授权码来验证使用软体权限,还有就是软体赋予给用户的使用期限

    如果过期就要重新申请来使用。

     在获取MAC时要特别注意获取网卡的地址是否存在虚拟网卡也就是伪网卡 有的可能存在两个或者两个以上的网卡 要获取的是物理网卡地址

     必须判断或者通过另一种方法来解决 要么通过IP来获取MAC Address 根据网卡绑定的 IP 地址获得 NetworkInterface 对象这样不会存在获取不真实的MAC地址。一般通过命令来获取MAC会存在一些问题。如果有多个IP,只匹配本IP对应的Mac.

     关于获取IP地址的方式,在Linux平台下下,如果单纯通过InetAddress来获取IP地址,就会出现在不同的机器上IP地址不同的问题。

      InetAddress.getLocalHost().getAddress() 实际上是根据hostname来获取IP地址的。linux系统在刚刚装完默认的hostname是localhost,所以通过上面代码获取到的本机ip就是127.0.0.1, 而在windows平台下获取ip是可以的。

    暂时采用下面代码来处理

    public static byte[] getIp() throws UnknownHostException {

      byte[] b = InetAddress.getLocalHost().getAddress();

      Enumeration allNetInterfaces = null;

      try

       {

      allNetInterfaces = NetworkInterface.getNetworkInterfaces();

      }

    catch (SocketException e)

        {

      e.printStackTrace();

      }

      InetAddress ip = null;

      NetworkInterface netInterface = null;

      while (allNetInterfaces.hasMoreElements())

    {

      netInterface = (NetworkInterface) allNetInterfaces.nextElement();

      if (netInterface.getName().trim().equals("eth0"))

    {

      Enumeration addresses = netInterface.getInetAddresses();

      while (addresses.hasMoreElements())

      {

      ip = (InetAddress) addresses.nextElement();

      }

      break;

      }

      }

      if (ip != null &&ip instanceof Inet4Address)

      {

      return b = ip.getAddress();

      }

      return b;

  • 相关阅读:
    【3y】从零单排学Redis【青铜】
    【Java】几道常见的秋招面试题
    【Java】广州三本秋招经历
    两个月的Java实习结束,继续努力
    外行人都能看懂的SpringCloud,错过了血亏!
    【Java】留下没有基础眼泪的面试题
    【Java】几道让你拿offer的知识点
    Java多线程打辅助的三个小伙子
    数据库两大神器【索引和锁】
    Linux网络管理
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/2559453.html
Copyright © 2020-2023  润新知