【问题标题】:Android/iOS set IP-address of device hotspotAndroid/iOS设置设备热点的IP地址
【发布时间】:2018-04-06 16:29:08
【问题描述】:

有没有办法“修复”或设置热点的静态 IP 地址?我需要保证外围设备可以始终连接到该 IP 上的服务器套接字。

我正在尝试将 wifi 外围设备连接到在我的 android 设备上运行的服务器套接字。我使用 ssid 和 ssid 密码将外围设备连接到我的 android 热点。

现在我正在使用 ip 192.168.43.1。来源herehere192.168.43.1 将是默认值。但是,我的印象是这个 IP 地址可能会改变。

我也想为 iOS 做这件事,但一步一步来。

提前非常感谢!

【问题讨论】:

  • 没有。那个ip地址我们总是一样的。
  • 如果是这样的话,那就太棒了!你知道有什么文件可以支持吗?
  • 我知道这是一个由两部分组成的问题,但对于 iOS 来说呢?
  • 但是你的问题的表述很奇怪。您首先必须将您的设备与 Android 设备连接。为此,您不必知道 ip。之后,您设备上的应用程序应与您的 Android 设备上的 serversocket 连接。为此,您确实需要一个ip。但在尝试连接之前,客户端可以检查自己的 IP 地址。如果它像 129.168.43.# 你知道你在里面。
  • 是的..这绝对是一个奇怪的问题。基本上,我们拥有的应用程序要求本地 wifi ssid & pwd 然后将其发送到外围设备以将自身连接到本地 wifi。外围设备总是在 android 上寻找 ssid,因此如果我们将热点的 ssid 和 pwd 设置为外围设备正在寻找的那个,我们就可以连接到它。

标签: android ios ip-address serversocket hotspot


【解决方案1】:

您可以在source 中看到,此 IP 地址是为 Android 硬编码的。

if (ifcg != null) {
    /* IP/netmask: 192.168.43.1/255.255.255.0 */
    ifcg.setLinkAddress(new LinkAddress(
        NetworkUtils.numericToInetAddress("192.168.43.1"), 24));
    ifcg.setInterfaceUp();
    mNwService.setInterfaceConfig(intf, ifcg);
}

但是,更好的实施方式是让您的外围设备获取本地网络的默认网关,因为无论热点实施如何,它都可以正常工作。

【讨论】:

  • 对不起,请您详细说明一下,您介意吗?我对网络编程还是有点陌生​​。在这种情况下,获取默认网关对我有何帮助? “本地网络”是指我设备的热点网络还是我实际的本地网络?
  • WiFi 网络(热点)提供商将始终是默认网关,本地网络是指热点网络。
  • 所以在我的安卓手机上,当他们访问我的默认网关时,我需要处理或路由传入的外围设备流量到192.168.43.1?是这样吗?还是我在另一个星球上?
  • 如果你的安卓手机是热点,默认网关永远是192.168.43.1。如果由于某种原因 Android 或 iOS 更改了它们处理热点的方式并将设备 IP 设置为 192.168.1.1,则默认网关将为 192.168.1.1。您不会依赖硬编码的值。
  • 现在看来这已更改为 Android 9 上的动态地址。我使用的是 Vivo 1906 手机,热点的 IP 现在似乎是 192.168.43.x 其中 x每次切换时一直在变化。也许这是vivo Android版本的变化。欢迎在 android 热点设置中进行设置。
猜你喜欢
  • 2014-03-15
  • 2015-02-09
  • 2020-03-29
  • 2022-11-22
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
相关资源
最近更新 更多