嗨,我是新的android編程。我基本上試圖連接到接入點併發送命令。通過wifi連接到它後,是否可以通過編程方式獲得它的IP地址,以便我可以建立一個http連接? 到目前爲止,我知道我們可以獲取設備IP,但不知道是否可以獲取接入點IP。請幫忙。提前致謝。我可以通過wifi連接到接入點的IP地址嗎?
回答
我假設你指的是設備連接到的接入點的外部(公共)IP地址。如果是這樣,是的,有一種簡單的方法來獲取設備連接到的接入點的公共IP地址。只需在Web服務器上設置一個腳本,該腳本將回顯連接到它的任何客戶端的IP地址(類似於www.whatismyip.com)。然後,您的設備只需要對腳本執行GET請求,這將返回設備連接到的接入點的外部IP。
謝謝,但不幸的是,我將無法訪問任何其他Web服務器。這需要是一個獨立的Android應用程序,它只與它所連接的接入點進行交互。另外,通過接入點的IP,我的意思是由可用於AP的DHCP代理分配給它的IP。 – user2597333
我使用該工具來獲取IP地址
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())
{
//My IP address
String Ip= inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException e)
{
Log.e("Error occurred ", e.toString());
}
這是完美的代碼,但我不認爲它會工作無線 – 2013-07-23 06:08:14
謝謝Gaurav。上面的代碼在連接到wifi時會返回一個ipv6地址。所以我無法檢查這是否是正確的地址。我也試過包括if(!inetAddress.isLoopbackAddress()&&(inetAddress instanceof Inet4Address)),但是我又沒有得到任何IPv4地址。我連接的AP確實有IPv4地址,我可以從子網內ping它。但這並不是一回事。 – user2597333
public static String getApIpAddr(Context context) {
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcpInfo = wifiManager.getDhcpInfo();
byte[] ipAddress = convert2Bytes(dhcpInfo.serverAddress);
try {
String apIpAddr = InetAddress.getByAddress(ipAddress).getHostAddress();
return apIpAddr;
} catch (UnknownHostException e) {
e.printStackTrace();
}
return null;
}
private static byte[] convert2Bytes(int hostAddress) {
byte[] addressBytes = { (byte)(0xff & hostAddress),
(byte)(0xff & (hostAddress >> 8)),
(byte)(0xff & (hostAddress >> 16)),
(byte)(0xff & (hostAddress >> 24)) };
return addressBytes;
}
- 1. Wifi接入點是否有IP地址?
- 2. iPhone - 如何找到連接的WiFi接入點的MAC地址?
- 3. 我可以通過AF_INET域套接字連接到ipv6地址嗎?
- 4. 我可以爲JDBC連接指定*源* IP地址嗎?
- 5. 我可以通過WIFI-Direct連接Android和IOS嗎?
- 6. Java連接到IP地址
- 7. 我可以通過編程獲取連接到手機的wifi的MAC地址嗎?
- 8. 連接到通過WIFI
- 9. MessageWebSocket用於連接的URI可以是IP地址,對嗎?
- 10. 您可以使用WCF連接來獲取您的連接IP地址嗎?
- 11. 當連接到WiFi時獲取ios設備的IP地址
- 12. 可以通過Wifi連接兩個或更多的iPad嗎?
- 13. 通過WiFi進行點對點連接
- 14. 是否可以看到連接到其他WIFI接入點的設備的MAC地址?
- 15. lidgren-網絡庫可以直接通過給定的IP地址點對點連接
- 16. 如何連接到WIFI接入點?
- 17. 手機的當前IP地址,無論是通過WiFi還是3G連接
- 18. 通過使用接入點的WiFi連接兩個Android手機
- 19. Windows Phone 8和Android可以通過Wifi Direct連接嗎?
- 20. 我可以在Android中找到我的接入點的MAC地址嗎?
- 21. 我可以通過地址鏈接激活JavaScript嗎?
- 22. 我想通過我的機器連接到互聯網上的IP地址
- 23. 如何連接到本地IP地址
- 24. IP地址將不會連接到相同的IP地址
- 25. WIFI直接IP地址問題
- 26. 我可以看到與我的EC2實例連接的IP地址
- 27. WMI - 無法通過IP地址連接到某些計算機
- 28. 如何通過IP地址連接到設備Objective-C
- 29. 無法通過IP地址連接到MySQL
- 30. AWS私有IP地址服務器可以連接到同一VPC中的公共IP地址服務器嗎?
的可能重複[是否WiFi接入點有一個IP地址?(http://stackoverflow.com/questions/4929438/does -wifi-access-points-have-an-ip-address) – kabuko
從這個副本中不清楚你所問的甚至是有意義的。 – EJP
@kabuko我指的接入點確實分配了一個IP地址。我可以ping通並連接到它。我的問題是,如果有可能從android應用程序獲得這個IP。此外,重複的帖子不回答這個問題。 – user2597333