① 如何查看android手機的DNS域,IP地址等信息
參考網路經驗上的相關操作方法:
:jingyan../article/9f7e7ec0b469af6f2815549a.
1打開手機設置界面,以榮耀6為例,從手機頂部向下拉,彈出界面中點擊設置。
2在設置界面中,選擇WLAN,查看可連接的wifi列表。
3長按已經連接的wifi名稱,彈出修改網路對話框,並點擊「修改網路」按鈕。
4在彈出的對話框中,勾選中「顯示高級選項」。
5隨後下拉,在IP設置這一欄選擇「靜態」。
6界面繼續往下拉,就可以看到域伺服器和IP地址的設置界面了。
以android手機為例 , 在 設置 -> 關於手機 -> 狀態消息 裡面可以看到狀態,包括IP地址等。但是看不到網關和DNS掩碼之類的,因為都是自動獲取的。
很簡單,在設置里進入WLAN設置,再按手機menu鍵,屏幕下方出現小界旁散面有高級,進入高級,裡面可以看到MAC地址 或者設置里,進入關於手機 ,然後選硬體信息,裡面也可以看到MAC地址,這個方法同樣適用於其它的Android平台的手機
Android查看MAC地址的方式:
在主屏幕上輕按「設置」按鈕。或者,按下物理按鈕「Menu」,選擇「設置」。
在設置的列表下,輕按選擇「關於本機」按鈕。
然後,輕按「狀態消息」按鈕。
在狀態中查看「Wi-Fi MAC 地址」。
同時也可在【WLAN】下查看MAC地址:
同樣打開手機——【設置】——【無線網路】——【WLAN】
進入WLAN頁面後,觸摸手機【菜單鍵】選擇——【高級】
在WLAN高級設置界面也可查看到MAC地址竄號。
Android查看MAC地址的方式:
1. 在主屏幕上輕按「設置」按鈕。或者,按下物理按鈕「Menu」,選擇「設置」。
2. 在設置的列表下,輕按選擇「關於本機」按鈕。
3. 然後,輕按「狀態消息」按鈕。
4. 在狀態中查看「Wi-Fi MAC 地址」。
同時也可在【WLAN】下查看MAC地址。
1. 同樣打開手機——【設置】——【無線網路】——【WLAN】
2. 進入WLAN頁面後,觸摸手機【菜單鍵】選擇——【高級】
3. 在WLAN高級設置界面也可查看到MAC地址串號。
第一步:右鍵點擊桌面「網路」,單擊「屬性」,出現如下「網路和共享中心」。
第二步:在對應的連接後點擊「查看狀態」。(也可以點擊「管理網路連接」,如果您是通過有線前扮的方式連接路由
器,請在「本地連接」上右鍵選擇「屬性」,如果您是通過無線連接路由器,請在「無線網路連接」上右鍵選擇
「屬性」,這里以無線為例。)
第三步:查看或修改本機IP地址信息。
1.查看本機IP地址信息
這里可以查看您本機無線網路連接的IP地址等信息,請檢查IP地址、網關、DNS伺服器地址是否配置正確,正確配置
為:
IP地址:192.168.1.X,(2≤X≤254)
子網掩碼:255.255.255.0
網關:192.168.1.1
DNS伺服器地址:向運營商咨詢
2.修改本機IP地址信息
選擇「Inter協議版本4(TCP/IPv4)」,點擊「屬性」。
設置IP地址和路由器同一網段,DNS伺服器地址請向網路運營商咨詢。
找到手機桌面裡面的設置,點進去。
進去後再選擇當前連接的 WIFI。
選擇當前鏈接的wifi 就可以進入
選擇後彈出一個界面,裡面有wifi的信息
② android 判斷是否有網路連接
我們在做訪問的時候都得進行判斷是否連網。判斷連網也比較簡單,就用到了兩個類。ConnectivityManager和NetworkInfo。
只要執行下面的代碼就可以了。
1
2
3
4
5
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isWifiConn = networkInfo.isConnected();
networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileConn = networkInfo.isConnected();
只要有一個連接就是有網,NetworkInfo就是網路的信息。還有一種更簡便的判斷是否連網的方法。
1
2
ConnectivityManager connMgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
在一個就是監聽網路變化,就是設置一個廣播。
注冊廣播,監聽ConnectivityManager.CONNECTIVITY_ACTION這個action
1
2
3
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetworkReceiver();
context.registerReceiver(receiver, filter);
再實現一個廣播類就可以了。這樣網路一變化,就會受到廣播,然後執行對應操作了。
1
2
3
4
5
6
7
public class NetworkReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i("TAG", "intent============>>>>" + intent.toString());
}
}
下面就是來說一下判斷手機網路的類型了,2G,3G,4G
關於網路類型,在得到networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);這個後,確定是手機網路後,通過networkInfo.getSubtype()會得到網路的類型,用networkInfo.getSubtypeName()會得到網路的名字。
我們通過這個networkInfo.getSubtype()得到的類型來判斷當前是什麼網路。
其實,Android的Api中已經定義了各種網路狀態,不是在ConnectivityManager裡面定義的,而是在TelephonyManager裡面的定義的。通過不同的api版本的修改,目前增加到了14個狀態值:
下面是通過自己查資料,和看別人查資料實驗得來的。整理如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
--------------------Added in API level 1---------------------
public static final int NETWORK_TYPE_UNKNOWN
Network type is unknown
Constant Value: 0 (0x00000000)
(不知道網路類型)
public static final int NETWORK_TYPE_GPRS
Current network is GPRS
Constant Value: 1 (0x00000001)
(2.5G)移動和聯通
public static final int NETWORK_TYPE_EDGE
Current network is EDGE
Constant Value: 2 (0x00000002)
(2.75G)2.5G到3G的過渡 移動和聯通
public static final int NETWORK_TYPE_UMTS
Current network is UMTS
Constant Value: 3 (0x00000003)
(3G)聯通
-----------------Added in API level 4---------------------
public static final int NETWORK_TYPE_CDMA
Current network is CDMA: Either IS95A or IS95B
Constant Value: 4 (0x00000004)
(2G 電信)
public static final int NETWORK_TYPE_EVDO_0
Current network is EVDO revision 0
Constant Value: 5 (0x00000005)
( 3G )電信
public static final int NETWORK_TYPE_EVDO_A
Current network is EVDO revision A
Constant Value: 6 (0x00000006)
(3.5G) 屬於3G過渡
public static final int NETWORK_TYPE_1xRTT
Current network is 1xRTT
Constant Value: 7 (0x00000007)
( 2G )
---------------------Added in API level 5--------------------
public static final int NETWORK_TYPE_HSDPA
Current network is HSDPA
Constant Value: 8 (0x00000008)
(3.5G )
public static final int NETWORK_TYPE_HSUPA
Current network is HSUPA
Constant Value: 9 (0x00000009)
( 3.5G )
public static final int NETWORK_TYPE_HSPA
Current network is HSPA
Constant Value: 10 (0x0000000a)
( 3G )聯通
--------------------------Added in API level 8-------------------------
public static final int NETWORK_TYPE_IDEN
Current network is iDen
Constant Value: 11 (0x0000000b)
(2G )
--------------------------Added in API level 9-------------------------
public static final int NETWORK_TYPE_EVDO_B
Current network is EVDO revision B
Constant Value: 12 (0x0000000c)
3G-3.5G
--------------------------Added in API level 11------------------------
public static final int NETWORK_TYPE_LTE
Current network is LTE
Constant Value: 13 (0x0000000d)
(4G)
public static final int NETWORK_TYPE_EHRPD
Current network is eHRPD
Constant Value: 14 (0x0000000e)
3G(3G到4G的升級產物)
--------------------------Added in API level 13---------------------------
public static final int NETWORK_TYPE_HSPAP
Current network is HSPA+
Constant Value: 15 (0x0000000f)
( 3G )
③ Android如何獲取網路連接狀態及怎樣調用網路配置界面
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class NetManager {
Context context;
public NetManager(Context context) {
this.context = context;
}
// 判斷網路是否可用的方法
public boolean isOpenNetwork() {
ConnectivityManager connectivity = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null) {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
return false;
}
// 判斷WIFI網路是否可用的方法
public boolean isOpenWifi() {
ConnectivityManager connManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return mWifi.isConnected();
}
}
public static void netManager(final Context a) {
netManager = new NetManager(a);
if (!netManager.isOpenNetwork()) {
// 如果網路不可用,則彈出對話框,對網路進行設置
Builder builder = new Builder(a);
builder.setTitle("沒有可用的網路");
builder.setMessage("是否對網路進行設置?");
builder.setPositiveButton("確定",
new android.content.DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
try {
String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(
android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName(
"com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
a.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
});
builder.setNegativeButton("取消",
null);
builder.show();
}else {
Toast.makeText(a, "網路不給力,請確認您的網路連接", Toast.LENGTH_LONG).show();
}
}
轉載,僅供參考。
④ android 怎麼判斷網路狀態
獲取android系統的連接服務可判斷網路連接狀態,代碼如下
public class NetUtils{
public static boolean isNetworkConnected(Context context){
ConnectivityManager mConnectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] infos = cm.getAllNetworkInfo();
for(NetworkInfo info:infos){
if(info.isAvailable()&&info.isConnected()){
return true;
}
}
return false;
}
}
NetworkInfo的isAvailable()和isConnected()有以下5種狀態:
在WLAN設置界面
1,顯示連接已保存,但標題欄沒有,即沒有實質連接上:isConnected()==false,isAvailable()=true
2,顯示連接已保存,標題欄也有已連接上的圖標:isConnected()==true,isAvailable()=true
3,選擇不保存後:isConnected()==false,isAvailable()=true
4,選擇連接,在正在獲取IP地址時:isConnected()==false,isAvailable()=false
5,連接上後:isConnected()==true,isAvailable()=true