iOS项目开发实战——获取本机IP地址
来源:互联网 发布:秒杀软件开发 编辑:程序博客网 时间:2024/05/16 05:05
在设计iOS网络开发中,我们需要获取本机的IP地址,那么通过Swift调用OC如何来实现呢?我将会通过一个Swift的iOS项目,然后通过调用OC的方法,来实现这个功能。
(1)在Swift项目中新建Cocoa Touch Class,语言选择Objective-C,然后自动会提示新建一个Swift和OC的桥接文件,选择Yes就好。然后就会自动生成一个 “项目名-Bridging-Header.h”的文件。我新建的OC文件名是GetIPAddress.
。
(2)然后在桥接文件中加入OC的头文件:
#import "GetIPAddress.h"
(3)然后在OC头文件GetIPAddress.h中实现如下:
#import <Foundation/Foundation.h>@interface GetIPAddress : NSObject+ (NSString *)deviceIPAdress;@end
(4)然后在OC的实现文件GetIPAddress.m中实现如下:
//// GetIPAddress.m// AlertDialogDemo//// Created by chenyufeng on 15/9/8.// Copyright (c) 2015年 chenyufengweb. All rights reserved.//#import "GetIPAddress.h"#include <ifaddrs.h>#include <arpa/inet.h>@implementation GetIPAddress+ (NSString *)deviceIPAdress { NSString *address = @"an error occurred when obtaining ip address"; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int success = 0; success = getifaddrs(&interfaces); if (success == 0) { // 0 表示获取成功 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; } } freeifaddrs(interfaces); NSLog(@"手机的IP是:%@", address); return address;}@end
(5)最后在Swift代码中调用:
override func viewDidLoad() { super.viewDidLoad() var ipAddress = GetIPAddress.deviceIPAdress()//这是一个类方法,可以直接通过类名调用; var dialog = UIAlertView() dialog.title = "本机IP" dialog.message = ipAddress dialog.show() }
(6)最后的实现结果如下:
。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
1 0
- iOS项目开发实战——获取本机IP地址
- iOS开发 ☞ 获取本机ip地址
- ios 获取本机IP地址
- iOS获取本机IP地址方式
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机IP地址
- 获取本机ip地址
- 获取本机IP地址
- 获取本机ip地址
- 获取本机ip地址
- 获取本机IP地址
- 从我一年编程生涯中得到的经验教训
- SOAPUI测试WSDL项目(一)---创建WSDL项目
- Cocos2dx引擎笔记——数据结构
- [leetcode-174]Dungeon Game(java)
- 网龙2010年笔试题
- iOS项目开发实战——获取本机IP地址
- PHP Fatal error: Undefined class constant 'MYSQL_ATTR_USE_BUFFERED_QUERY
- HDU 1729 Stone Game(SG函数变形)
- Linux Tips: 修改启动过程获得root权限
- 字典NSDictionary 使用注意
- WordPress开发推荐工具
- vs2010编译live555
- 余数相机“让照片不再过曝-2
- android:inputType参数类型说明