iOS应用中NTP的使用

Network Time Protocol是用来使时间同步化的一种协议,可以通过网络取得当前时间,而不依赖与于本地系统时间。

 

在iOS应用的开发过程中,经常会需要取得系统时间,对绝大多数的应用来说,[NSDate date]就已经足够了,但是单纯 

利用系统时间的弊端在于,系统时间是可以被用户随意修改的,当应用对时间的要求比较高的场合,系统时间就不那么可靠了。 

比如按期收费订阅等处理要求,虽然可以通过每次都向苹果发出支付请求来保证用户不会过期使用,但用户体验就会相当恶劣。 

当然也可以通过部署在网络上的业务服务器来提供时间的验证,但如果没有自己去部署业务服务器的条件,又该怎样保证时间的正确性呢? 

这种时候,NTP就有了用武之地。  


网络上NTP服务很多,通过iOS来访问NTP的开源方法也不少。这里讲解ios-ntp,点此下载开源库:IOS-NTP 

使用方法很简单,github上也有简单介绍:

 

第一步:添加相应的支持文件。
我们要把这个Demo里,ios-ntp-lib和network-udp文件夹加到自己的项目里来,因为ios-ntp需要用到AyncUdpSocket。当然还有ios-ntp-app文件夹下的ntp.hosts文件,作为支持,一并加到项目里面来。
第二步:引入头文件和开启NTP服务。
我们只要把ios-ntp.h这个文件导入要使用的文件中就行了。
第三步:开启时间同步服务。
[NetworkClocksharedNetworkClock];  
现在所有的配置工作都已经做完了。如果我们需要得到当前标准时间,可以使用+(NSDate *) networkDate;这个方法。

判断当前时间和系统时间的差,可以这样写,
      NSDate*date = [NSDate date];
 
  NSInteger outTime = [[NSDate networkDate]timeIntervalSinceDate:date];

// [NSDate networkDate],输出是GMT时间(GMT(Greenwich Mean Time)代表格林尼治标准时间),如果想获取当前时间需要通过时间戳进行转换
 NSDate * date = [NSDate networkDate];// 获得时间对象
    NSTimeZone *zone = [NSTimeZone systemTimeZone]; // 获得系统的时区
    NSTimeInterval time = [zone secondsFromGMTForDate:date];// 以秒为单位返回当前时间与系统格林尼治时间的差
    NSDate *nowDate = [date dateByAddingTimeInterval:time];// 然后把差的时间加上,就是当前系统准确的时间

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MobSF(Mobile Security Framework)是一款专门用于移动应用程序安全测试和漏洞扫描的开源框架。它支持多种移动操作系统应用程序格式,包括Android、iOS、Windows Phone、BlackBerry等。您可以使用MobSF来测试iOS应用程序的安全性和漏洞情况。 要在Windows上使用MobSF测试iOS应用程序,您需要进行以下步骤: 1. 安装Python和Java环境。MobSF是基于Python和Java开发的,因此您需要先安装Python和Java环境。您可以从官方网站下载并安装Python和Java环境。 2. 下载并安装MobSF。您可以从MobSF的官方GitHub仓库下载最新的版本,并将其解压到您的Windows系统。 3. 安装必要的依赖项。在MobSF的根目录,运行以下命令来安装必要的依赖项: ``` pip install -r requirements.txt ``` 4. 启动MobSF。在MobSF的根目录,运行以下命令来启动MobSF: ``` python manage.py runserver ``` 5. 打开Web界面。在浏览器访问http://127.0.0.1:8000/,即可打开MobSF的Web界面。 6. 导入iOS应用程序。在MobSF的Web界面,选择“Upload App”选项,选择要测试的iOS应用程序,并等待应用程序上传完成。 7. 进行安全测试。在MobSF的Web界面,选择“Run Analysis”选项,等待测试完成。MobSF将会对应用程序进行安全测试,并给出测试结果和漏洞报告。 需要注意的是,MobSF只能对未加密的iOS应用程序进行测试。如果应用程序已经被加密,您需要先解密应用程序,然后再使用MobSF进行测试。此外,MobSF只能进行静态分析,无法进行动态分析,因此可能会存在一些漏洞无法被检测到的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值