zoukankan      html  css  js  c++  java
  • ip wifi

    百分号的转换,NSString中需要格式化的字符串中百分号使用%%表示,而char*中百分号也是使用%%表示。

    例如:NSLog(@"%%%@%%",@"hello"),控制台会打印出%hello%。

     

    //获取IP地址
    
    #import <Foundation/Foundation.h>
    #import <stdio.h>
    #import <stdlib.h>
    #import <math.h>
    #import <string.h>
    #import <unistd.h>
    #import <sys/ioctl.h>
    #import <sys/types.h>
    #import <sys/sysctl.h>
    #import <sys/socket.h>
    #import <netinet/in.h>
    #import <netdb.h>
    #import <arpa/inet.h>
    #import <sys/sockio.h>
    #import <net/if.h>
    #import <net/ethernet.h>
    #import <errno.h>
    #import <net/if_dl.h>
    #import <ifaddrs.h>
    #import <mach/machine.h>
    
    + (NSString *)getIPAddress; // 获取IP
    + (NSString *)getIPAddress
    {
    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)
    {
    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
    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
    }
    }
    temp_addr = temp_addr->ifa_next;
    }
    }
    // Free memory
    freeifaddrs(interfaces);
    return address;
    }
    //获取当前WIFI名
    #import <SystemConfiguration/CaptiveNetwork.h>
    + (NSString *)getWifiName;  //
    + (NSString *)getWifiName
    {
        NSString *wifiName = nil;
        
        CFArrayRef wifiInterfaces = CNCopySupportedInterfaces();
        
        if (!wifiInterfaces) {
            return nil;
        }
        
        NSArray *interfaces = (__bridge NSArray *)wifiInterfaces;
        
        for (NSString *interfaceName in interfaces) {
            CFDictionaryRef dictRef = CNCopyCurrentNetworkInfo((__bridge CFStringRef)(interfaceName));
            
            if (dictRef) {
                NSDictionary *networkInfo = (__bridge NSDictionary *)dictRef;
                NSLog(@"network info -> %@", networkInfo);
                wifiName = [networkInfo objectForKey:(__bridge NSString *)kCNNetworkInfoKeySSID];
                
                CFRelease(dictRef);
            }
        }
        
        CFRelease(wifiInterfaces);
        return wifiName;
    }

    ARC下使用MRC文件  标记编译文件.m -fno-objc-arc

        反之      标记文件 -fobjc-arc

     

  • 相关阅读:
    Search Insert Position
    *Set Matrix Zeroes
    Spiral Matrix II
    *Spiral Matrix
    combination的eclipse运行结果
    [?]*Combination(递归调用好难)
    [?]*Subset
    *3Sum Closest
    Why am I getting an Unreachable Statement error in Java?
    windows下,emacs的配置文件在哪儿?
  • 原文地址:https://www.cnblogs.com/coderyangpeizhang/p/4873909.html
Copyright © 2011-2022 走看看