【问题标题】:How should I scan a local network looking for a server?我应该如何扫描本地网络以查找服务器?
【发布时间】:2015-02-14 23:18:52
【问题描述】:

我正在编写一个小程序,它将连接到运行在 Android 手机上的 FTP 服务器(通过 WiFi 连接到同一网络)。我无法控制 FTP 服务器的 Android 代码。

问题是运行我的程序的 PC 和手机的 IP 地址是动态分配的,而且这两个 IP 地址都经常变化。

我可以在路由器级别分配固定的 IP 地址,但我想要一些更智能且对消费者更友好的东西。因此,我认为我需要我的程序扫描所有 IP 地址,以查找正在运行 FTP 服务器的电话。

初步研究表明我应该计算出 PC 的 IP 地址和子网掩码,然后使用它来计算要扫描的 IP 范围。

例如,如果 PC 是 192.168.1.70 并且子网掩码是 255.255.255.0,那么我的程序应该从 192.168.1.1 扫描到 192.168.1.254 以找到带有 FTP 服务器的手机。

鉴于我无法更改 FTP 服务器代码来进行任何类型的广播,这是扫描服务是否存在的正确方法吗?如果没有,我应该怎么做?

作为奖励点:有没有一种简单的方法可以计算我应该在 VB.net 中扫描的范围?

【问题讨论】:

  • 设备 name 是否对客户端未知?另外:如果另一个 FTP 服务器恰好在网络上处于活动状态怎么办?
  • 我尝试使用手机的 IP 地址运行nbtstat -A,但没有返回任何内容,所以我假设设备名称未知是否正确?是否有其他 FTP 服务器无关紧要,因为程序将尝试连接(使用提供的凭据)并在它们不起作用时继续扫描。

标签: vb.net networking ftp ip-address


【解决方案1】:

由于您对服务器一无所知(既不知道名称,也不知道地址),因此通过范围扫描寻找它似乎是唯一的方法。

关于范围,您可以在 SO 的其他地方找到解决方案,例如this question seems good

【讨论】:

    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多