希望在Android M上获取Wifi MAC地址的Android开发人员可能遇到了以下问题:获取MAC地址的标准Android OS API返回虚假MAC地址(02:00:00:00:00:00)而不是真实MAC地址值.
获取Wifi MAC地址的常规方法如下:
final WifiManager wifiManager = (WifiManager) getApplication().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
final String wifiMACaddress = wifiManager.getConnectionInfo().getMacAddress();
Run Code Online (Sandbox Code Playgroud) 有谁知道如何获得Android设备的公共IP地址?
我正在尝试运行服务器套接字(只是试验简单的p2p).
这需要通知本地和远程用户的公共IP.我找到了这个帖子如何从代码中获取设备的IP地址?其中包含指向如何获取IP 的文章(http://www.droidnova.com/get-the-ip-address-of-your-device,304.html)的链接.然而,这通过路由器连接时返回本地IP,我想获得实际的公共IP.
TIA
我有一个serverSocket,我想知道IP地址,但有
listenSocket.getInetAddress().toString();
Run Code Online (Sandbox Code Playgroud)
我得到0.0.0.0.如何获取IP地址,或者(如果启用了两个连接)其中一个?
我试图获取我的设备的IP地址,但都是徒劳的,没有成功.我试过了
public String getP2PIpAddr() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_P2P_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ip = wifiInfo.getIpAddress();
String ipString = String.format(
"%d.%d.%d.%d",
(ip & 0xff),
(ip >> 8 & 0xff),
(ip >> 16 & 0xff),
(ip >> 24 & 0xff));
return ipString;
}
Run Code Online (Sandbox Code Playgroud)
但它给我0.0.0.0,没有其他方法也工作..帮助!!
我有一个应用程序,其中包含一个用户可以从其家庭LAN访问的Web服务器.目前我有两种获取设备IP的方法,我不知道哪种方式更合适.
我的正常方式:
List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
for (NetworkInterface intf : interfaces) {
List<InetAddress> addrs = Collections.list(intf.getInetAddresses());
for (InetAddress addr : addrs) {
if (!addr.isLoopbackAddress()) {
String sAddr = addr.getHostAddress().toUpperCase();
Run Code Online (Sandbox Code Playgroud)
我的替代方式:
WifiInfo connectionInfo = wifiMgr.getConnectionInfo();
int ip = connectionInfo.getIpAddress();
Run Code Online (Sandbox Code Playgroud)
我认为这一切工作正常,但我确实有一些统计数据,似乎两个ips只有4%的时间不同.
此外,我只是在Chromebook上尝试了我的应用程序,而替代方式实际上是正确的,而不是正常的方式.
那么我怎么知道哪条路更好还是有更好的选择呢?
我想检索公共IP地址,例如我们从whatismyipaddress.com获得的地址,并且我不想使用任何第三方服务https://www.ipify.org。有什么方法可以从 Android 中的内置类或库中获取此 IP 地址。
如果无法从 Android 库获取所需的数据,请建议在服务器级别获取相同数据的任何逻辑,而不是在客户端级别获取。注意:负载均衡器在路由到实际 Web 应用程序之前就存在
我写了以下代码来获取MAC地址:
WifiManager wimanager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
String address = wimanager.getConnectionInfo().getMacAddress();
Log.d("TOKEN", address);
Run Code Online (Sandbox Code Playgroud)
这在我的手机上完美运行,但在Android模拟器中它返回null.这是因为Android模拟器没有MAC地址吗?
我到处搜索如何获取外部IP地址无济于事.我能够成功获取本地IP地址.
简而言之,我想要获得与whatip.com或whatismyipaddress.com上相同的IP地址.但是,我不想对网站进行任何调用,是否有内置的方法来获取此功能?
此外,如果用户连接到wifi,我想要外部ipaddress.
我正在为Android编写一个wifi直接应用程序.我正在尝试与设备建立套接字连接.由于组所有者意图功能似乎不起作用(它只是随机分配)我必须找到一种方法将客户端IP地址传输到主机.我所知道的唯一地址是WifiP2pManager可以获取的组信息对象中的主机设备.我知道哪个设备是主机,哪个设备是客户端,所以我可以打开一个套接字连接到达或尝试连接到另一个.
我需要做的是找到一种方法来转移设备的Wifi P2P(Wifi Direct)客户端的IP地址,如果'主机'设备是组所有者.如果主机是组所有者,则无法连接到客户端上的套接字.它有点令人困惑,但它是如何工作的.
我已经看到了从ARP表中获取IP地址的事情,但是ARP表似乎在几秒钟之后(如一分钟)和ICS上自行清除,因为wifi接口被禁用Wifi直接我甚至都没有看到arp表中的任何内容.
我觉得这应该很容易,但我不是一个大的Linux用户,所以我不知道什么文件将保持网络接口配置.有没有办法获得网络接口的IP地址?或者至少是Wifi P2P界面?(注意:这不是wifi地址.除了Wifi Direct之外,它类似于网络共享地址.WifiManager不会返回此信息)
谢谢,
Mgamerz
我想要通过wifi连接到网络的Android设备的确切IP地址!什么人可以帮助我如何获得移动连接到网络时的IP地址以及如何通过编程方式获取地址..
android ×10
ip-address ×3
java ×2
wifi-direct ×2
chromebook ×1
ip ×1
linux ×1
mac-address ×1
networking ×1
privacy ×1
sockets ×1
wifi ×1