check ip interface before start

This commit is contained in:
Vincent BOUQUET
2024-02-17 22:39:33 +01:00
parent 4171dce2e7
commit 07830df99d

View File

@@ -1,8 +1,11 @@
using System.ComponentModel; using System.ComponentModel;
using System.Diagnostics;
using System.Net; using System.Net;
using System.Net.NetworkInformation;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Web; using System.Web;
using Tmds.MDns; using Tmds.MDns;
using Xamarin.Forms;
namespace robospot_camera_finder namespace robospot_camera_finder
{ {
@@ -44,6 +47,33 @@ namespace robospot_camera_finder
{ {
InitializeComponent(); InitializeComponent();
bool got_proper_ip = false;
foreach (var net_interface in NetworkInterface.GetAllNetworkInterfaces())
{
IPInterfaceProperties prop = net_interface.GetIPProperties();
foreach (var ip in prop.UnicastAddresses)
{
if (ip.Address.ToString().StartsWith("10."))
{
if (ip.IPv4Mask.ToString() == "255.0.0.0")
{
got_proper_ip = true;
}
}
}
}
if (!got_proper_ip)
{
DialogResult open_netsettings = MessageBox.Show("No Ethernet interface on the 10.0.0.0/8 subnet found. Cameras might not be detected. Do you want to open network settings ?", "Wrong IP configuration", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1);
if (open_netsettings == DialogResult.Yes)
{
ProcessStartInfo startInfo = new ProcessStartInfo("NCPA.cpl");
startInfo.UseShellExecute = true;
Process.Start(startInfo);
}
}
browser.StartBrowse("_rtsp._tcp"); browser.StartBrowse("_rtsp._tcp");
lbMain.DataSource = all_cameras; lbMain.DataSource = all_cameras;