需要加入以下权限
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
public static String hostip; //本机IP
public static String hostmac; //本机MAC
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById (R.id.hello);
hostip = getLocalIpAddress(); //获取本机IP
hostmac = getLocalMacAddress();//获取本机MAC
/* 本机IP和MAC */
tv.setText ("HostIP:" + hostip + "\nHostMAC:" + hostmac);
/* 打印本机IP和MAC */
if (hostip != null)
{
Log.d ("GetIPMAC", hostip);
}
else
{
Log.d ("GetIPMAC", "null");
}
Log.d ("GetIPMAC", hostmac);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
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();
if (!inetAddress.isLoopbackAddress() )
{
return inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex)
{
Log.e ("WifiPreference IpAddress", ex.toString() );
}
return null;
}
public String getLocalMacAddress()
{
WifiManager wifi = (WifiManager) getSystemService (Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
return info.getMacAddress();
}
}
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
代码
import java.net.InetAddress;import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
import android.app.Activity;
import android.content.Context;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
public static String hostip; //本机IP
public static String hostmac; //本机MAC
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView) findViewById (R.id.hello);
hostip = getLocalIpAddress(); //获取本机IP
hostmac = getLocalMacAddress();//获取本机MAC
/* 本机IP和MAC */
tv.setText ("HostIP:" + hostip + "\nHostMAC:" + hostmac);
/* 打印本机IP和MAC */
if (hostip != null)
{
Log.d ("GetIPMAC", hostip);
}
else
{
Log.d ("GetIPMAC", "null");
}
Log.d ("GetIPMAC", hostmac);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
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();
if (!inetAddress.isLoopbackAddress() )
{
return inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex)
{
Log.e ("WifiPreference IpAddress", ex.toString() );
}
return null;
}
public String getLocalMacAddress()
{
WifiManager wifi = (WifiManager) getSystemService (Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
return info.getMacAddress();
}
}