ios平台实现局域网ip扫描
概述
在开发中,我们可能经常遇到在同一WIFI环境下发现其它设备并与其连接的需求,所以我们第一步就是要能在同一WIFI下面能发现其它的设备。
在github上有一个开源的库叫MMLanScan,其主要的功能是获取局域网其它设备的mac地址(由于苹果的限制,ios7之后无法获取)和ip地址,但是其有太多的issue,亲测发现造成此种crash的原因都是它的任务线程过久没有完全退出,然后操作又特别频繁造成的。
issue:
基于以上原因,我在PhoneNetSDK
中添加了局域网IP扫描功能,特在此分享。
- 源码地址: PhoneNetSDK
- 欢迎fork & star
实现过程
原理:
- 根据其子网掩码和本机ip计算出有多少个可用ip
- 然后分别ping这些ip,通过监听其是否有响应来判断这个ip是否处于活跃状态
- SDK通过代理的方式告知上层哪些ip处于活跃状态并返回扫描进度
利用PhoneNetsdk开发的NetPinger
中的局域网IP扫描功能截图如下:
SDK存在的弊端:
- 如果局域网内的机器防火墙禁止了ICMP协议的接收和转发则无法探测到
转载于:https://juejin.im/post/5d0885fff265da1b725c0485
ios平台实现局域网ip扫描相关推荐
- Python Pyside2 多线程实现局域网IP扫描
利用pyside2实现带界面的局域网IP扫描工具 from PySide2.QtWidgets import QApplication, QMessageBox from PySide2.QtUiTo ...
- 网络通(修复网络、ip切换、局域网ip扫描、安全设置等)
本帖最后由 谁伴我闯荡me 于 2013-3-6 08:25 编辑 软件名称: 新微 网络通 版本:3.0.8.1 -----------------程序功能---------------- ...
- 局域网ip扫描工具_让你局域网里聊天、发送图片、视频与文件
▲ 微信扫描二维码关注 有时候想给旁边的朋友发送文件,突然发现自己的流量不够了! 附近也没有无线网! 难道只能回家再发送文件了吗? 不!有了这款软件你随时随地的给朋友发送文件! 没有流量限制!唯一的要 ...
- 解决同一个局域网两个DHCP冲突问题--涉及到局域网IP扫描,主机操作系统扫描,mac地址查询
最近这几天我们大优能公司的网络(网段为10.0.0.1/24)总是出问题,常有一部分机器获取到192.168.1.0/24网段的IP和DNS,这部分机器无法上网且邮箱均不能用.公司同事囧的不成样子,不 ...
- IOS开发——获取局域网IP
头文件 [plain] view plaincop #include <arpa/inet.h> #include <net/if.h> #include <ifaddr ...
- 使用 arp-scan 快速扫描局域网 IP -> raspberry pi ssh vnc
简介 在使用 ssh/vnc 对树莓派进行远程操作的时候,都需要获取树莓派的 IP.常见的办法是路由器管理页面或者使用 Advanced IP Scanner.但是我既没有路由器,也没搞懂这个软件怎么 ...
- java 监控 局域网_使用Java实现简单的局域网设备扫描
在产品的使用中我们一般都要设置一个配置环节,这个环节可以设定主机的IP地址等信息,但是这样配置的话使得我们的产品用起来效果不是很好,因此我想到了实现局域网IP扫描的功能,IP局域网扫描是指定IP网段获 ...
- java扫描局域网中可用ip_使用java线程扫描局域网ip简单方案
package com.cjh.thread; import java.io.BufferedReader; import java.io.IOException; import java.io.In ...
- 扫描局域网IP和MAC的有力工具BPSNMPUtil
扫描局域网IP和MAC的有力工具,其他工具和它比起来简直弱爆了,它能扫描识别出小.中.大型网络基本所有在线电脑的IP地址和其对应的MAC地址,请看下面的截图: 转载于:https://blog.51c ...
最新文章
- 用UltraISO制作U盘启动盘,支持windows 7
- Hibernate中HQL函数汇总及其说明
- tcp/ip 协议栈Linux内核源码分析15 udp套接字接收流程二
- 数据网络卡顿怎么处理_监控网络卡顿怎么办
- rbac权限管理5张表_PHP之常用的RBAC权限管理详解
- BZOJ3527: [Zjoi2014]力
- 敏捷项目开源管理软件ScrumBasic(2)- 多项目支持
- 误删docker0网桥之后怎么办呢?
- Laravel 5.4: 特殊字段太长报错 420000 字段太长
- background:url(./images.png) no-repeat 0 center的用法
- 知道吗?9个搜索引擎优化(SEO)最佳实践
- 用vue开发的h5商城小程序,thinkphp5开发拼团、砍价、秒杀、优惠券、积分、分销等功能
- 从0开始学习WBE前端
- Java——课设——图书管理系统实现
- 蛋白互作常用的研究方法
- 40种顶级思维模型,学会任何1种都让你受用无穷,赶紧点赞收藏
- java中对象有什么优点,Java:示例中不可变对象的优点
- 遥感影像语义分割论文笔记(一)FarSeg CVPR2020
- 青岛大学计算机科学学院,青岛大学信息工程学院
- GNU GRUBversion 2.04Minimal BASH-like line editing is supported.For the first word
热门文章
- ubuntu网站收集
- 探寻完美 之 JavaScript继承
- CCNA网络小菜鸟笔记之(第十一章, 广域网协议)
- ThinkPHP5.1开启调试和错误提示
- Bone collector//动态规划
- 4.安卓基础之Activity跳转动画
- Dubbo -- 系统学习 笔记 -- 目录
- Linux 多线程可重入函数
- 关于IKAnalyzer自定义分词的切换主词典的方法
- 未能正确加载“Microsoft.VisualStudio.Editor.Implementation.EditorPackage”包。