iOS获取路由器地址

找了好多资料,终于找到可以用的了。

 

#include <sys/socket.h>  
#import <netinet/in.h>  
#import <netinet6/in6.h>  
#import <arpa/inet.h>  
#import <ifaddrs.h>  
#include <netdb.h>  
#import <SystemConfiguration/SCNetworkReachability.h>   
#import "getgateway.h"  
#import <arpa/inet.h> 

 

 
 

 

 

- (NSString *) routerIp {  
      
    NSString *address = @"error";  
    struct ifaddrs *interfaces = NULL;  
    struct ifaddrs *temp_addr = NULL;  
    int success = 0;  
      
    // retrieve the current interfaces - returns 0 on success  
    success = getifaddrs(&interfaces);  
    if (success == 0)  
    {  
        // Loop through linked list of interfaces  
        temp_addr = interfaces;  
        //*/  
        while(temp_addr != NULL)  
        /*/  
         int i=255;  
         while((i--)>0)  
         //*/  
        {  
            if(temp_addr->ifa_addr->sa_family == AF_INET)  
            {  
                // Check if interface is en0 which is the wifi connection on the iPhone  
                if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"])  
                {  
                    // Get NSString from C String //ifa_addr  
                    //ifa->ifa_dstaddr is the broadcast address, which explains the "255's"  
                    //                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)];  
                      
                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];  
                      
                    //routerIP----192.168.1.255 广播地址  
                    NSLog(@"broadcast address--%@",[NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_dstaddr)->sin_addr)]);  
                    //--192.168.1.106 本机地址  
                    NSLog(@"local device ip--%@",[NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]);  
                    //--255.255.255.0 子网掩码地址  
                    NSLog(@"netmask--%@",[NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_netmask)->sin_addr)]);  
                    //--en0 端口地址  
                    NSLog(@"interface--%@",[NSString stringWithUTF8String:temp_addr->ifa_name]);  
                      
                }  
                  
            }  
              
            temp_addr = temp_addr->ifa_next;  
        }  
    }  
      
    // Free memory  
    freeifaddrs(interfaces);  
      
    in_addr_t i =inet_addr([address cStringUsingEncoding:NSUTF8StringEncoding]);  
    in_addr_t* x =&i;  
      
      
    unsigned charchar *s=getdefaultgateway(x);  
    NSString *ip=[NSString stringWithFormat:@"%d.%d.%d.%d",s[0],s[1],s[2],s[3]];  
      
    NSLog(@"路由器地址-----%@",ip);  
    return ip;  
} 

源码下载 https://code.youkuaiyun.com/u010990519/ios_routeip/tree/master

喜欢的关注一下!
 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值