Android 获取本机Ip 和 Mac
来源:互联网 发布:服务器端编程心得 编辑:程序博客网 时间:2024/05/17 07:37
获取本机IP和MAC。
public class MainActivity extends Activity {private EditText ed1, ed2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed1 = (EditText) findViewById(R.id.et1);ed2 = (EditText) findViewById(R.id.et2);ed1.setText(getIP());ed2.setText(getLocalMacAddressFromIp(getIP()));new Thread() {@Overridepublic void run() {try {sendInfo();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}}.start();}public void sendInfo() throws Exception {//可以通过 DatagramPacket 的getAddress()方法获取ipfinal String GROUP_ADDR = "224.224.224.224";final int PORT = 4444;MulticastSocket ms = new MulticastSocket(PORT);InetAddress addr = InetAddress.getByName(GROUP_ADDR);ms.joinGroup(addr);String info = "hello";byte[] buf = info.getBytes();DatagramPacket dp = new DatagramPacket(buf, buf.length, addr, PORT);while (true) {Thread.sleep(2000);ms.send(dp);}}public static String getIP() {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();if (!inetAddress.isLoopbackAddress()&& !inetAddress.isLinkLocalAddress()) {return inetAddress.getHostAddress().toString();}}}} catch (Exception e) {e.printStackTrace();}return null;}public static String getLocalMacAddressFromIp(String ipStr){String mac_s = "";try {byte[] mac;NetworkInterface ne = NetworkInterface.getByInetAddress(InetAddress.getByName(ipStr));mac = ne.getHardwareAddress();mac_s = byte2hex(mac);} catch (Exception e) {e.printStackTrace();}return mac_s;}public static String byte2hex(byte[] b){StringBuffer hs = new StringBuffer(b.length);String stmp = "";int len = b.length;for (int n = 0; n < len; n++){stmp = Integer.toHexString(b[n] & 0xFF);if (stmp.length() == 1) {hs = hs.append("0").append(stmp);} else {hs = hs.append(stmp);}}return String.valueOf(hs);}
参考资料:
http://blog.sina.com.cn/s/blog_77c632410101cy1v.html
0 0
- Android 获取本机Ip 和 Mac
- Android获取本机ip地址和Mac地址
- Android中获取本机ip地址和MAC地址
- android获取本机的IP地址和mac物理地址
- Android中获取本机ip地址和MAC地址
- Android关于获取到本机ip和mac地址
- Android 获取本机IP、Mac、名称
- 获取本机IP/MAC
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android开发中获取本机Mac地址和IP地址的方法
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android获取本机IP地址(不是localhost)和MAC的方法
- Android获取本机Mac地址及IP地址方法
- android:获取本机Mac地址及IP地址方法
- Android获取本机Mac地址及IP地址方法
- Android 获取本机Mac 地址方法及ip地址
- flatbuffers
- U-Boot启动过程--详细版的完全分析
- 安卓 密码输入的明文和密文切换
- Android Bitmap转Drawable
- 理解 JAVA多线程技术之详解
- Android 获取本机Ip 和 Mac
- isydfiuysudiysuiydusd
- java.sql.SQLException: Protocol violation
- 【线段树+扫描线】 HDOJ 1542 Atlantis
- cocos2d-x学习笔记
- Eclipse中修改SVN用户名和密码方法
- HTML Flash Object属性(摘)
- Tony MaHyper-V结合远程路由访问实现一个公网IP
- 【转】HttpURLConnection的使用