iOS: IP-адрес маршрутизатора доступен? - PullRequest
1 голос
/ 18 января 2012

Я хочу проверить интернет-соединение в своем приложении для iPhone.

Приложение должно знать, подключен ли телефон через Wi-Fi и подключен ли Wi-Fi к строгому маршрутизатору.

Например: это приложение для заказа напитков в баре.Пользователь может только заказать что-то, если он подключен к сети панели.

Я пытался:

- (IBAction)buttonCHECKNETWORK:(id)sender{

struct sockaddr_in callAddress;
callAddress.sin_len = sizeof(callAddress);
callAddress.sin_family = AF_INET;
callAddress.sin_port = htons(24);
callAddress.sin_addr.s_addr = inet_addr("152.465.456.975");

 Reachability *hostReach = [Reachability reachabilityWithAddress:&callAddress];

NetworkStatus netStatus = [hostReach currentReachabilityStatus];

if (netStatus == NotReachable)
{
    NSLog(@"IP NotReachable");
}

if (netStatus == ReachableViaWiFi)
{
    NSLog(@"IP ReachableViaWiFi");
}

if (netStatus == ReachableViaWWAN)
{
    NSLog(@"IP ReachableViaWWAN");
} }

Но каждый IP-адрес доступен (также этот вымышленный IP в моем коде) ... Я хотел бы указать IP-адрес маршрутизатора в 'callAddress'.Или имя роутера или что-то в этом роде. Он не будет доступен, если пользователь подключен через 3G.

1 Ответ

1 голос
/ 18 января 2012

Получив локальный IP-адрес (см., Например, iPhone, получающий IP-адрес при подключении через 3G - и обратите внимание, что это решение также предусматривает адрес Wi-Fi), вы можете сравнить его с фиксированным IPдиапазон адресов маршрутизатора вашей панели и проверьте, находитесь ли вы в одной сети.

...