精华内容
下载资源
问答
  • wifi代理自动配置
    千次阅读
    2018-04-04 17:32:00

    转自知乎

    最近一直在做跨域中华局域网的工作,了解了很多代理知识和基础概念,很零散,也很细碎。希望通过一段时间的学习,能够自由地穿梭在国际互联网和中华局域网之间。后续会写一系列文章记录我了解到的知识点,本文要说的是我们平时接触比较多的 PAC,全名为 proxy auto-config。

    什么是 PAC

    PAC,一个自动代理配置脚本,包含了很多使用 JavaScript 编写的规则,它能够决定网络流量走默认通道还是代理服务器通道,控制的流量类型包括:HTTP、HTTPS 和 FTP。

    它是一段 JavaScript 脚本:

    function FindProxyForURL(url, host) {
    return "DIRECT";
    }

    上面就是一个最简洁的 PAC 文件,意思是所有流量都直接进入互联网,不走代理。

    PAC 语法和函数

    上面函数中,url 字段就是我们在浏览器地址栏输入的待访问地址,host 为该地址对应的 hostname,return 语句有三种指令:

    DIRECT,表示无代理直接连接
    PROXY host:port,表示走host:port 的 proxy 服务
    SOCKS host:port,表示走host:port 的 socks 服务
    而返回的接口可以是多个代理串联:

    return “PROXY 222.20.74.89:8800; SOCKS 222.20.74.89:8899; DIRECT”;
    上面代理的意思是,默认走222.20.74.89:8800 的 proxy 服务;如果代理挂了或者超时,则走 222.20.74.89:8899的 socks 代理;如果 socks 也挂了,则无代理直接连接。从这里可以看出 PAC 的一大优势:自动容灾。

    PAC 提供了几个内置的函数,下面一一介绍下:

    dnsDomainIs

    类似于 ==,但是对大小写不敏感,

    if (dnsDomainIs(host, "google.com") || 
    dnsDomainIs(host, "www.google.com")) {
    return "DIRECT";
    }
    shExpMatch

    Shell 正则匹配,* 匹配用的比较多,可以是*.http://example.com,也是可以下面这样,

    if (shExpMatch(host, "vpn.domain.com") ||
    shExpMatch(url, "http://abcdomain.com/folder/*")) {
    return "DIRECT"; 
    }
    isInNet

    判断是否在网段内容,比如 10.1.0.0 这个网段,10.1.1.0 就在网段中,

    if (isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0")) {
    return "DIRECT";
    }
    myIpAddress

    返回主机的 IP,

    if (isInNet(myIpAddress(), "10.10.1.0", "255.255.255.0")) {
    return "PROXY 10.10.5.1:8080";
    }
    dnsResolve

    通过 DNS 查询主机 ip,

    if (isInNet(dnsResolve(host), "10.0.0.0", "255.0.0.0") ||
    isInNet(dnsResolve(host), "172.16.0.0", "255.240.0.0") ||
    isInNet(dnsResolve(host), "192.168.0.0", "255.255.0.0") ||
    isInNet(dnsResolve(host), "127.0.0.0", "255.255.255.0")) {
    return "DIRECT";
    }
    isPlainHostName

    判断是否为诸如http://barret/,http://server-name/ 这样的主机名,

    if (isPlainHostName(host)) {
    return "DIRECT";
    }
    isResolvable

    判断主机是否可访问,

    if (isResolvable(host)) {
    return "PROXY proxy1.example.com:8080";
    }
    dnsDomainLevels

    返回是几级域名,比如dnsDomainLevels(http://barretlee.com) 返回的结果就是 1,

    if (dnsDomainLevels(host) > 0) {
    return "PROXY proxy1.example.com:8080";
    } else {
    return "DIRECT";
    }
    weekdayRange

    周一到周五,

    if (weekdayRange("MON", "FRI")) {
    return "PROXY proxy1.example.com:8080";
    } else {
    return "DIRECT";
    }
    dateRange

    一月到五月,

    if (dateRange("JAN", "MAR")) {
    return "PROXY proxy1.example.com:8080"; 
    } else {
    return "DIRECT";
    }
    timeRange

    八点到十八点,

    if (timeRange(8, 18)) {
    return "PROXY proxy1.example.com:8080";
    } else {
    return "DIRECT"; 
    }
    alert

    据说这个函数可以用来调试,不过我在 Chrome 上测试并未生效,

    resolved_host = dnsResolve(host);
    alert(resolved_host);

    PAC 文件的安装和注意事项

    在 Windows 系统中,通过「Internet选项 -> 连接 -> 局域网设置 -> 使用自动配置脚本」可以找到配置处,下放的地址栏填写 PAC 文件的 URI,这个 URI 可以是本地资源路径(file:///),也可以是网络资源路径(http://)。

    Chrome 中可以在「chrome://settings/ -> 显示高级设置 -> 更改代理服务器设置」中找到 PAC 填写地址。

    需要注意的几点:

    PAC 文件被访问时,返回的文件类型(Content-Type)应该为:application/x-ns-proxy-autoconfig,当然,如果你不写,一般浏览器也能够自动辨别
    FindProxyByUrl(url, host) 中的 host 在上述函数对比时无需转换成小写,对大小写不敏感
    没必要对 dnsResolve(host) 的结果做缓存,DNS 在解析的时候会将结果缓存到系统中

    转载于:https://www.cnblogs.com/linuxde/p/8718437.html

    更多相关内容
  • 最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改安卓系统配置文件的方式来修改但是没有找到解决方案。最后决定针对自己的手机进行私人订制,缺点是只能针对固定机型进行设置,不过优点...
    导读这篇文章主要介绍了自动设置安卓手机wifi代理的PowerShell脚本,帮助大家进行抓包测试

    在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试。最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改安卓系统配置文件的方式来修改但是没有找到解决方案。最后决定针对自己的手机进行私人订制,缺点是只能针对固定机型进行设置,不过优点是脚本很好编写,可以很快的对自己平时使用的测试机进行定制(非Windows下的脚本编写过程类似)。Linux就该这么学

    利用adb命令编写PowerShell脚本

    Windows下编写脚本用到了PowerShell和adb相关命令,脚本内容如下(坐标定位用uiautomatorviewer就可以):

    Write-Host "更改设置中……" -ForegroundColor Green
    #点击Home键返回Home页并进入网络设置页面
    adb shell input keyevent 3
    adb shell am start -a android.settings.WIRELESS_SETTINGS
    adb shell input tap 421 570
    adb shell input tap 421 570
    adb shell input tap 605 1665
    #手动设置代理
    #删除主机名
    adb shell input swipe 972 1687 972 1686 1500
    #获取本机ip
    $ip = (ipconfig|findstr "IPv4"|findstr "10.234").split(":")[1]
    #修改主机名为本机ip
    adb shell input text $ip
    #收起软键盘
    adb shell input tap 997 1250
    #向上滑动屏幕
    adb shell input swipe 813 1626 794 201 1000 
    #点击端口框
    adb shell input tap 955 1461
    #删除端口号
    adb shell input swipe 986 1388 986 1386 1000
    #输入端口号8888
    adb shell input tap 547 1688
    adb shell input tap 547 1688
    adb shell input tap 547 1688
    adb shell input tap 547 1688
    #点击返回按钮
    adb shell input tap 1009 1853
    #下一项
    adb shell input tap 1009 1853
    #完成设置
    adb shell input tap 1009 1853
    #返回设置界面
    adb shell input tap 77 126
    #返回Home页
    adb shell input keyevent 3
    Write-Host "手机wifi代理设置完毕,已与本机相连,请开抓包工具!" -ForegroundColor Green
    Read-Host
    

    将脚本编译为exe可执行文件

    可以进一步将PowerShell脚本转化为可双击执行的exe文件。推荐使用Ps1 To Exe Online Converter这款在线应用上传脚本进行转化后下载。点击解压后的exe文件,运行效果如下:
    自动设置安卓手机wifi代理的PowerShell脚本自动设置安卓手机wifi代理的PowerShell脚本

    展开全文
  • 根据微软支持页面发现,windows 10自动代理不支持ftp:// file://方法获取配置文件。 测试环境 Windows 10版本1803+(操作系统内部版本17134.345) 获取proxy.pac的方法支持http:// https://协议。 其他平台IOS ...
  • <p>Android实现设置wifi代理IP,有没有做过的呢</p>
  • 这里使用代理不是目的,抓包和修改请求和响应数据才是目的,使用代理只是为了实现抓...但是这个时候又出现了一个问题,代理切换问题,尤其是在安卓手机上,每次我都需要手动修改安卓手机的网络配置,这个过程的痛苦只有

    这里使用代理不是目的,抓包和修改请求和响应数据才是目的,使用代理只是为了实现抓包这个目的。

    无代理模式

    数据直来直往,浏览还可以通过devtools查看到接口的请求和响应数据,但是客户端无法查看和修改数据,用时候出现问题,不知道是接口问题还是客户端问题。
    在这里插入图片描述

    代理模式

    在实际的使用场景就是测试的过程中需要抓包,常用的抓包工具例如Charles和Fiddler都是以代理的模式进行工作的。
    在这里插入图片描述
    但是这个时候又出现了一个问题,代理切换问题,尤其是在安卓手机上,每次我都需要手动修改安卓手机的网络配置,这个过程的痛苦只有使用过的人才知道,更可怕的是没有人在意你的痛苦,没有比较好的方式能够提高这个操作效率,我曾经考虑过自己开发一个一键代理切换的app,后来就不了了之,直到我遇到WPAD和PAC的概念,我感觉另一种解决方案正在向我招手。

    代理自动发现

    pac是什么意思?
    pac的英文全称为proxy auto configuration
    参考:https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file

    代理自动配置(PAC)文件是一个 JavaScript 脚本,其核心是一个 JavaScript 函数,用来决定网页浏览请求(HTTP、HTTPS,和 FTP)应当直连目标地址,还是被转发给一个网页代理服务器并通过代理连接。

    在这里插入图片描述
    在pac文件安全可控的情况使用这种方式,可以通过修改pac的方式来切换代理。
    最常用的使用方法是把pac放到http服务器上面,提供一个pac脚本的链接。

    wpad是什么意思?

    Web Proxy Auto-Discovery Protocol, or WPAD, is a technology which aids a web browser in automatically detecting the location of a PAC file using DNS or DHCP.

    pac托管

    当你了解了pac的概念的时候,你会发现你需要一个pac文件托管服务,而我写了一个pac编辑器+pac托管服务器,可以在公网上访问,非常的便捷

    展开全文
  • 前言 在安卓逆向、软件测试...因为一个字“懒”,所以开发了一个安卓端一键自动设置WiFi代理的APP。 思路 使用Auto.js基于无障碍的自动化模拟点击,实现了一键自动设置WiFi代理的需求。 效果 项目 内附app下载链接 ...

    本文为原创文章,转载请注明出处!!!

    前言

    在安卓逆向、软件测试等工作过程中,使用Fiddler、Burp、Charles等抓包工具,需要经常设置和取消手机的WiFi代理。
    因为一个字“懒”,所以开发了一个安卓端一键自动设置WiFi代理的APP。

    思路

    使用Auto.js基于无障碍的自动化模拟点击,设配要求Android 7.0 +,实现了一键自动设置WiFi代理的需求。

    项目

    https://gitee.com/westinyang/WiFiProxyAutoSet 内附app下载链接

    效果

    效果

    展开全文
  • 猎豹免费Wifi是时下一款功能非常全面与实用的无线路由器软件,借助该软件可以轻松的将我们电脑网络通过Wifi无线网络方式,...针对不会使用猎豹免费Wifi无线路由器软件的朋友们,我们介绍详细的猎豹免费Wifi设置使用教程
  • android5.0自动设置wifi http代理

    千次阅读 2016-11-05 22:26:53
    由于android5.0版本,对这个WifiConfiguration这个类做了一些改动,所以设置起来比以前的版本有些改动! 如若想要使用5.0以前的方法的话这个比较不错,4.x的版本都能用。。。 源码里WifiConfiguration这个类里有...
  • 支持WiFi和网线环境下自动设置代理设置默认代理 $ easyproxy set 设置自定义代理 $ easyproxy set ****:8888 清除代理 $ easyproxy clean 安装 下载 $ git clone git@github.com:songhanghang/auto_set_proxy.git...
  • 代理自动配置PAC学习

    万次阅读 2017-01-22 11:00:39
    PAC,一个自动代理配置脚本,包含了很多使用 JavaScript 编写的规则,它能够决定网络流量走默认通道还是代理服务器通道,控制的流量类型包括:HTTP、HTTPS 和 FTP。 它是一段 JavaScript 脚本: function ...
  • Android 代理自动配置PAC研究

    千次阅读 2018-02-26 09:16:25
    Android 代理自动配置PAC研究 环境 小米6 MIUI9.2 Android7.1.1 MacOS 10.13.3 Charles 4.0.2 什么是PAC PAC,全称Proxy Auto Config,中文名代理自动配置。PAC类似于配置文件,通过这个配置文件,浏览器或者其他...
  • 同样的操作有的时候一天甚至要操作上10次,不用的时候还得关闭,不关闭有些软件还使用不了,那么现在就有一款神器,WiFi代理设置是基于Auto.js无障碍开发的安卓端一键自动设置WiFi代理的APP,配合Fiddler、Burp、...
  • Android10 系统应用wifi连接和静态ip代理设置 如果是Android10或者更新的Android版本wifi开发,本文对你或许有一定的帮助。 文章目录Android10 系统应用wifi连接和静态ip代理设置Android wifi连接和静态ip代理设置 ...
  • 最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改安卓系统配置文件的方式来修改但是没有找到解决方案。最后决定针对自己的手机进行私人订制,缺点是只能针对固定机型进行设置,不过优点...
  • mac 自动代理

    2021-05-22 20:19:42
    现在发现可以将公司的电脑作为代理服务器,代理上网后就可以在mac上登录公司网站。当然我现在只能在局域网,如果要在外网访问应该还需要申请域名之类的。一路探索趟了不少坑,记录下来也供有需求的人参考。 1,...
  • 解决window11使用VPN自动打开网络代理的解决方法之一
  • 一键切换手机WIFI代理

    千次阅读 2018-07-06 14:34:21
    一键切换手机WIFI代理 背景 在进行一点分期客户端测试时,因需要连接测试环境,或通过fiddler抓包,都需要wifi连接代理,但频繁手动修改太过麻烦,所以考虑做成自动化或找个现成的app。 WifiProxySwitcher ...
  • Ubuntu 设置网络代理的一些配置

    千次阅读 2022-05-12 16:09:26
    ubuntu设置网络代理配置 apt-get配置
  • 抓包设置_Windows Phone 8.1设置wifi代理

    千次阅读 2015-07-15 09:03:38
    WP8.1设置wifi代理的方法如下: 1、进入wifi设置的页面,连接wifi 2、连上wifi之后,长按已经连接的wifi,然后自动跳出高级设置的页面 3、进入页面之后,想怎设置,就怎么设置把。
  • 2:电脑打开charles,菜单:Proxy > Proxy Settings 3:手机和电脑保持链接同一个wifi,手机设置里点击链接的wifi进去HTTP代理,选择手动: 4:charles,Help->SSL Proxying 5:手机浏览器打开chls.pro/ssl,下载...
  • 配置功能: WiFi无线网络配置代理

    千次阅读 2012-01-14 22:29:08
    通常家里的WiFi都不需要有太多的设置,但在企业内部有很多安全和策略的配置,不如需要设置代理,才能更好的使用WiFi。我们已经讨论了如何连接WiFi,我们再来看看如何配置WiFi代理。 操作: 点击已经连接...
  • 核心提示:华为无线路由器怎么设置?一起看看吧!本文以华为HG510为例来讲解华为路由器如何设置华为HG510特点:不带无线、集合路由器和集线器于一体,跟HG520无线十分像,就差了条“尾巴”内有四口网线接口,可以四台...
  • 设备开机后,它将尝试连接到定义的MQTT代理,发布发现消息,并配置“遗嘱”。 当设备关闭电源(或您超出WiFi范围)时,您的经纪人会发送“遗嘱”以更新订阅的自动化系统。 示例利用此信息来打开或关闭已连接的车库...
  • 以下是设置Google WiFi的方法,以消除房屋或公寓各个角落的死角。 If you’re not familiar with what mesh Wi-Fi is and how it works, we have an explainer that can get you caught up. But essentially, mesh...
  • 官方小程序:wifi一键连,亲测实用最近云商铺小程序小编发现一个好用的小程序,今天忍不住跟大家分享一下,微信上线了一个功能——连接Wi-Fi热点,小程序名称"WiFi一键连",不用下载APP,不用输入密码,不用验证手机...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,439
精华内容 4,175
关键字:

wifi代理自动配置