• 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

     

  • 相关阅读:
    PHP的超全局变量
    Python 切片
    Python for else语句 以及 break和continue
    niceScroll 滚动条的用法
    python 短路求值或惰性求值
    python 中的 __name__
    python3 中的Counter函数
    谷歌浏览器 F12
    python reversed()的使用
    python字符串格式化% 操作符 {}操作符
  • 原文地址:https://www.cnblogs.com/coderyangpeizhang/p/4873909.html
Copyright © 2020-2023  润新知