代理网站源码-IDC代理中心平台源码 PHP版 v6.0.1.8 修复版

IDC代理中心是用php+mysql开发的IDC代理平台源码

使用说明:

所有用户须先注册账号并提交至官网客服开通代理权限。 如果您已经是代理,则无需开通代理。

代理平台基于PHP和MySQL开发,可同时在Windows、Linux、Unix平台上使用。 环境要求如下:

Windows平台

正式版需要PHP5.3及以上版本支持,MySQL5.0以上版本支持

建议使用科科官方提供的集成开发包(KKServ集成安装包)代理网站源码,以达到最佳性能。

Linux/Unix平台

正式版需要PHP5.6及以上版本支持,MySQL5.0以上版本支持

推荐平台:Linux + Nginx1.5/1.6.1 + PHP5.2以上 + MySQL5.0以上

支持平台:Linux + Apache2.2/2.4 + PHP5.2以上 + MySQL5.0以上

关于假装成工作人员的最新说明

防范措施:

1、代理免费代理网站源码,有独立平台。 那些收费的都是骗子。

2.交易仅在平台进行,请勿线下汇款。

3、如代理商擅自转让客户产品,请联系版本更新说明txt中的工作人员QQ进行核实。

【友情提醒】:我们不在乎别人怎么说我们,我们需要的是进步,无视愤青! 我们的发展离不开支持我们的人们。

IDC代理中心更新日志:

版本号:v6.0.18

注:应监管部门要求,平台将要求用户进行实名认证。 本次更新将强制用户进行实名认证。

版本号:v6.0.17

说明:更新网站设置BUG,网盘暂时无法使用,更新下载地址

版本号:v6.0.16

这是我参加庚文挑战赛的第五天。 活动详情请查看:耿文挑战赛

当本地后端代码尝试与前端套接字连接时,我们经常使用Webpack devserver等工具来配置代理:

// webpack.config.js
module.exports = {
  //...
  devServer: {
    proxy: {
      '/api': 'http://localhost:3000',
    },
  },
};

每个配置更改都需要重新启动才能生效。 其实没必要这么麻烦。 如果您使用Chrome进行调试,只需使用Chrome提供的代理套接字即可轻松配置和更改代理并立即生效!

Chrome插件市场中有很多这样的插件网站代理源码,比如ProxySwitchyOmega:

自己制作也很容易,我们只需要:

在v2扩展中,有两个socket可以实现代理效果:

代理网站源码-IDC代理中心平台源码 PHP版 v6.0.1.8 修复版

代理套接字 webRequest 套接字

各有优缺点,使用场景也略有不同。 让我们看看如何通过两种方式做到这一点:

使用代理套接字

代理socket的灵活性不如webRequest,只能指定代理的目标服务器地址(域名或IP)。但性能更好。

清单.json 配置

{
  "name": "PowerProxy",
  "description": "",
  "manifest_version": 2,
  "version": "1.0.0",
  "permissions": [
    "storage",
    "proxy",
    "background",
    "http://localhost/*"
  ],
  "icons": {
    "32": "32.png",
    "64": "64.png",
    "128": "128.png"
  },
  "browser_action": {
    "default_icon": "32.png",
    "default_title": "PowerProxy"
  },
  "background": {
    "scripts": ["background.js"],
    "persistent": true
  }
}

上面除了名称描述、版本等基本信息之外,不仅声明了以下权限:

代理配置页面

这里我们使用一个粗略的纯 HTML 示例来创建一个表单来填写代理配置的 JSON:


<html>
  <head></head>
  <body>
    <form id="form" action="#" onsubmit="javascript:save()">
      <textarea name="rules" rows="30"></textarea>
      <p id="buttons">
        <input type="submit" value="Save" />
      </p>
    </form>
    <script type="text/javascript">
      var form = document.getElementById('form')
      var rulesField = document.getElementById('id')
      chrome.storage.local.get(['rules'], ({ rules }) => {
        form.rules.value = JSON.stringify(rules)
      })
      function save(e) {
        chrome.storage.local.set(
          {
            rules: form.rules.value,
          },
          () => null
        )
        return false
      }
    </script>
  </body>
</html>

这里我们使用Chrome的localstorage来存储配置网站代理源码,后面background.js可以从中读取配置来执行相应的操作。 这里我存储为文本类型,也可以选择直接存储为JS对象类型。

预期的配置 JSON 格式如下:

[{
  "url": "http://localhost:8000/api/a",
  "proxy": "http://www.example.com"
}]

但我们是从上到下匹配的,即第一个配置的优先级最高。

background.js 窃听触发代理

创建完配置页面后,我们还需要一个入口来打开这个页面。 这里我使用Chrome的browseraction,即右上角地址栏旁边的小图标作为入口,点击background.js中的storm打开页面:

chrome.browserAction.onClicked.addListener(() => {
  chrome.tabs.create({
    url: chrome.runtime.getURL('index.html'), 
    active: true 
 	}, 
	() => null
});

然后根据我们的配置JSON调整浏览器代理设置:

chrome.storage.onChanged.addListener((changes) => {
  const { newValue: rules } = changes.rules;
  var config = {
    mode: "pac_script",
    pacScript: {
      data: `
const rules = ${rules};
function FindProxyForURL(url, host) {
	const rule = rules.find(rule => url.startsWith(rule.url));
	if (rule) {
		return 'PROXY ${rule.proxy}';
	}
	return 'DIRECT';
}
`
    }
  };
  chrome.proxy.settings.set(
    { value: config, scope: 'regular' },
    function() {}
  );
});

使用 webRequest 套接字重定向

webRequest的性能比较差,但是非常灵活,更容易使用。

清单.json 配置

{
  "name": "PowerProxy",
  "description": "",
  "manifest_version": 2,
  "version": "1.0.0",
  "permissions": [
    "storage",
    "webRequest",
    "webRequestBlocking",
    "background",
    "http://localhost/*"
  ],
  "icons": {
    "32": "32.png",
    "64": "64.png",
    "128": "128.png"
  },
  "browser_action": {
    "default_icon": "32.png",
    "default_title": "PowerProxy"
  },
  "background": {
    "scripts": ["background.js"],
    "persistent": true
  }
}

上面除了名称描述、版本等基本信息之外,不仅声明了以下权限:

代理配置页面

这部分与使用代理套接字完全相同。

background.js 窃听触发代理

不仅要处理background.js中的browserAction,我们还需要拦截chrome.webRequest.onBeforeRequest风暴:

let rules = [];
chrome.storage.local.get(['rules'], (data) => {
  rules = JSON.parse(data.rules) || [];
});
chrome.storage.onChanged.addListener((changes) => {
  const { newValue } = JSON.parse(changes.rules);
  rules = newValue;
});
chrome.webRequest.onBeforeRequest.addListener(
  ({ url }) => {
    const rule = rules.find(rule => url.startsWith(rule.url));
    if (rule) {
      return {
       redirectUrl: url.replace(rule.url, rule.proxy)
      };
    }
  },
  {
    urls: [''],
    types: ['xmlhttprequest'],
  },
  ['blocking']
)

因为这个事件的处理是同步的,但是我们读取存储的操作是异步的,所以这里多了一个操作,提前读取代理配置,放到一个变量中,以便后续操作。

概括

一个简单的Chrome扩展就完成了。 喜欢的话就给我一个【赞】吧!

过去的建议:

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 代理网站源码-IDC代理中心平台源码 PHP版 v6.0.1.8 修复版 https://www.wkzy.net/game/128524.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务