WiFi Hacks
- 1 minOver the past week I have been reviewing Apple Developer Guides/Samples on ways to view devices on one’s home network via an iOS app, aka Objective-C or Swift.
Through my research I have been able to find sample code on Apple’s “Simple Ping”. This small application will ping a host until you tell it to stop. I believe this could be utilized in a way to ping a certain range of IP Addresses once the initial one is found. The only limitation is that via StackOverflow, people have stated that the Objective-C code can only access laptops and desktops, not mobile devices. I am going to be conducting more research into this shortly.
Another alternative, is to dive into Apple’s Developer Framework and use the System Configuration Framework. Using such calls as: SCNetworkInterfaceGetBSDName, we could get a return value of the BSD name associated with the interface or device name. I could also possibly use the SCNetworkProtocolGetEnabled which would display which protocols are enabled, such as HTTP, SMS, FTP, etc..
For the basic speed test that I am thinking about, Ookla Speedtest actually allows you to download their code and use it via PHP, ASP.NET, or JSP. I am thinking that I could convert the PHP code to Objective-C in order to have the speed test available within my app.
First round design concepts coming soon…
My final proposed solution would be to use a Raspberry Pi on the backend as my server. This would act as an inter-mediary between the iOS Application (UI) and all other devices on the network. While running Bonjour on the Raspberry Pi, I could easily discover all devices connected to the same network. Bonjour, also known as zero-configuration networking, enables automatic discovery of devices and services on a local network using industry standard IP protocols. It makes it easy to discover, publish, and resolve network services with an easy-to-use programming interface that is accessable via Cocoa, Ruby, Python and others.
With all of these in mind and further research and iOS coding over the next week, I should have a definitive route in my stack and application.
Stay tuned!