gpt4 book ai didi

javascript - 如何在 iOS 上解析 PAC 文件

转载 作者:行者123 更新时间:2023-11-29 02:41:59 28 4
gpt4 key购买 nike

所以我正在尝试获取 iOS 设备上的代理信息。操作系统方便地使用函数 CFNetworkCopySystemProxySettings() 来获取设置字典。当提供主机和端口时我没有问题,我可以分别使用 kCFNetworkProxiesHTTPProxy 和 kCFNetworkProxiesHTTPPort 键在字典中访问它们。但是,有时不提供这些,而是​​为 kCFNetworkProxiesProxyAutoConfigURLString 键提供 URL。现在这就是我遇到问题的地方......

所以我拉取文件,其中包含预期的 javascript 函数:

function FindProxyForURL(url,host)

{
if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))
{
return "DIRECT";
}
if (isInNet(host, "10.xxx.xxx.xxx", "255.255.224.0"))
{
return "DIRECT";
}
return "PROXY host:port";
}

哪个对我来说都不错..?

然后,我尝试调用该函数并获取返回值,这就是一切出错的地方:( 这是我最近的尝试:

NSString *jsFunction = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; // jsFunction is the javascript function above
JSContext *context= [[JSContext alloc] init];
[context evaluateScript:jsFunction];
JSValue *function = context[@"FindProxyForURL"];
JSValue *jsResult = [function callWithArguments:@[[JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context], [JSValue valueWithObject:[NSString stringWithCppString:host] inContext:context]]];
NSString *result = [jsResult toString];

返回的结果总是未定义!!

我已经尝试了一些测试函数来代替 PAC,它们只会增加数字并且它们按预期工作,当我引入对 isInNet 的调用时,问题似乎就开始了。有没有人遇到过类似的问题? iOS 不支持 isInNet 吗?我做错了什么吗?

感谢您提供的任何帮助!

最佳答案

问题是未定义isInNet(或任何其他可能使用的 PAC 函数);它们不是标准的 Javascript 函数。您是否尝试过更直接的东西,例如 CFNetworkCopyProxiesForAutoConfigurationScript

关于javascript - 如何在 iOS 上解析 PAC 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25645887/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com