ios中 根据域名动态获取ip地址
来源:互联网 发布:舞美娘 设计软件 编辑:程序博客网 时间:2024/04/29 20:09
为什么动态获取ip呢,
在正常的网络请求中,理论上其实访问的是ip地址,互联网中用一个ip去标识一个计算机,但是单纯的用ip访问也会引发诸如安全性或因服务器变更引发的问题,所以dns出现了,不了解dns的 可以先去了解一下dns,dns的出现解决了ip访问引发的问题,但也造成请求时间和性能上的牺牲,因为多了一个去dns系统查询特定ip的操作,拿到ip之后再去进去服务器的访问请求,
如果我们在项目中直接就可以获取到ip的话,是不是直接就省略了我们的请求到dns的时间呢,只是之前放在网络处理的部分我们放在本地完成了而已,
//根据域名 动态获取ip地址
+ (NSString*)getIPWithHostName:(const NSString*)hostName
{
const char *hostN= [hostName UTF8String];
struct hostent* phot;
@try {
phot = gethostbyname(hostN);
if (phot == nil) {
return nil;
}
}
@catch (NSException *exception) {
return nil;
}
struct in_addr ip_addr;
memcpy(&ip_addr, phot->h_addr_list[0], 4);
char ip[20] = {0};
inet_ntop(AF_INET, &ip_addr, ip, sizeof(ip));
NSString* strIPAddress = [NSString stringWithUTF8String:ip];
return strIPAddress;
}
这个方法因为引用了一些c 库中的方法,需要引入三个文件
#include <netdb.h>
#include <sys/socket.h>
#include <arpa/inet.h>
这样就可以解决了!
注:因为从dns 获取特定ip 是网络操作,所以在断网情况下获取不到ip,大家需要酌情处理
- ios中 根据域名动态获取ip地址
- 根据域名动态获取IP地址(iOS)
- iOS 根据域名获取ip地址
- 根据域名获取IP地址
- 根据域名获取IP地址
- 根据域名获取ip地址
- oracle 中如何获取本机ip地址,根据IP地址获取域名?
- 一、java根据域名获取ip地址
- 根据域名获取IP地址 gethostbyname()函数
- C/C++ 根据域名获取IP地址
- [Win32]根据主机名、域名、IP字符串获取IP地址
- Java InetAddress根据域名获取该域名对应的IP地址及本地IP地址
- vc根据域名获取IP地址 gethostbyname()函数
- vc根据域名获取IP地址 gethostbyname()函数
- vc根据域名获取IP地址 gethostbyname()函数
- vc根据域名获取IP地址 gethostbyname()函数
- vc根据域名获取IP地址 gethostbyname()函数
- VC++根据域名获取IP地址GetHostByName()
- Seat HTML
- 曼昆微观经济学之征税的市场本质—冰激凌篇
- python解析文本文件示例
- MFC获得当前应用程序目录的GetCurrentDirectory()和GetModuleFileName()函数
- Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
- ios中 根据域名动态获取ip地址
- 【BZOJ 1927】 [Sdoi2010]星际竞速
- OC语法总结
- malloc源码
- Android之android:layout_gravity和android:gravity的区别
- Oracle树形汇总--connect_by_root
- iOS开发new与alloc/init的区别
- Android学习笔记--文件的读写
- XMPP中离线消息的发送