【问题标题】:Inside my Android app (java), I want to retrieve IP address while connecting my Android with usb connection to another device在我的 Android 应用程序 (java) 中,我想在将我的 Android 与 USB 连接连接到另一台设备时检索 IP 地址
【发布时间】:2021-04-27 15:42:33
【问题描述】:

我很确定这是可能的,因为我成功从安装 nmap 并运行以下命令的 termux Android 应用程序中得到了相同的结果:

  • 先运行ifconfig,获取设备IP(xxx.xxx.xxx.x
  • 运行nmap -sn xxx.xxx.xxx.x/24

注意:设备没有root,甚至可以在飞行模式下工作。

测试设备:Android 11,三星 Galaxy m30s

我尝试了usb overview(usb 管理器、usbdevicce 等)的官方 Android 文档,甚至在我的应用程序中运行命令行但没有成功(但是,一旦我通过命令知道了 IP 地址,我就能够执行 ssh行)。

【问题讨论】:

  • 你要安卓设备的ip吗?
  • 不,我想要通过 USB 连接与我的 android 设备连接的设备的 ip
  • 您必须通过 USB 获取 IP 吗?情况如何?可能有另一种方法可以获取所需设备的 IP。为了通过 USB 获得 IP,不仅 USB 接口必须支持它,而且您连接的设备也必须支持它,这似乎不太可能。
  • 是的,他们都支持。我测试了它将我的设备连接到正常系统,即使我的 Linux 系统和设备都处于飞行模式,也能够通过 nmap 命令检索 ip。我还能够通过我的 android 设备(即使在飞行模式下)通过 termux 应用程序实现设备 ip,它为我们提供了运行相同 nmap 命令的 cli。唯一的区别是我无法通过我的应用程序做到这一点。如果 termux 能够在不植根我的 android 设备的情况下实现它,那么肯定有一个解决方案。

标签: android android-studio android-usb


【解决方案1】:

您可以获取设备的IP地址。

进程p = Runtime.getRuntime().exec("/system/bin/ip地址");

这会给你很多信息,包括环回、ip4、ip6、广播等

您可以根据需要使用额外的开关进一步修改它。

获取所有可用的开关

打开终端/命令提示符 连接您的 Android 设备

类型 - ADB 设备 您应该能够看到您的设备。

然后输入 ADB shell 并回车

然后输入 /system/bin/ip --help

这将显示此 IP 实用程序的所有开关。

【讨论】:

  • 他要的是连接的USB设备的IP,而不是安卓设备
  • 是的@spartygw 是对的,我不需要我的安卓设备的IP。我想要通过 USB 连接连接到我的 android 设备的设备的 IP。
  • @singhV - 您正在通过 USB 连接哪个设备?
  • 我只是将我的笔记本电脑与安卓设备连接起来。您可能在想为什么要使用 USB 连接,但实际上我希望它即使在飞行模式下也能正常工作。
【解决方案2】:

您可以向httpbin 服务器发送请求,并从响应中获取答案。

例如

请求网址

https://httpbin.org/ip

响应正文

{
    "origin": "104.132.33.92"
}

【讨论】:

  • 这将给出 android 设备的 ip,而不是与其连接的设备。请再次阅读问题。
猜你喜欢
  • 2015-05-12
  • 1970-01-01
  • 2017-08-16
  • 2015-05-20
  • 2012-12-18
  • 2014-10-18
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多