mirror of
https://github.com/NeteaseCloudMusicApiEnhanced/api-enhanced.git
synced 2026-10-20 14:41:23 +08:00
feat(randomCNIP): 添加随机中国IP选项
This commit is contained in:
+4
-1
@@ -1,3 +1,4 @@
|
||||
const logger = require('./logger')
|
||||
// 预先定义常量和函数引用
|
||||
const chinaIPPrefixes = [
|
||||
'116.25',
|
||||
@@ -80,7 +81,9 @@ module.exports = {
|
||||
generateRandomChineseIP() {
|
||||
// 优化:使用预绑定的函数和常量
|
||||
const randomPrefix = chinaIPPrefixes[floor(random() * prefixesLength)]
|
||||
return `${randomPrefix}.${generateIPSegment()}.${generateIPSegment()}`
|
||||
const returns = `${randomPrefix}.${generateIPSegment()}.${generateIPSegment()}`
|
||||
logger.info('Generated Random Chinese IP:', returns)
|
||||
return returns
|
||||
},
|
||||
// 生成chainId的函数
|
||||
generateChainId(cookie) {
|
||||
|
||||
@@ -5,6 +5,7 @@ const createOption = (query, crypto = '') => {
|
||||
ua: query.ua || '',
|
||||
proxy: query.proxy,
|
||||
realIP: query.realIP,
|
||||
randomCNIP: query.randomCNIP || false,
|
||||
e_r: query.e_r || undefined,
|
||||
domain: query.domain || '',
|
||||
checkToken: query.checkToken || false,
|
||||
|
||||
+9
-9
@@ -3,6 +3,7 @@ const encrypt = require('./crypto')
|
||||
const CryptoJS = require('crypto-js')
|
||||
const { default: axios } = require('axios')
|
||||
const { PacProxyAgent } = require('pac-proxy-agent')
|
||||
const logger = require('./logger')
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
const tunnel = require('tunnel')
|
||||
@@ -160,8 +161,7 @@ const createRequest = (uri, data, options) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// 变量声明和初始化
|
||||
const headers = options.headers ? { ...options.headers } : {}
|
||||
const ip = options.realIP || options.ip || ''
|
||||
|
||||
const ip = options.realIP || options.ip || (options.randomCNIP ? generateRandomChineseIP() : '')
|
||||
// IP头设置
|
||||
if (ip) {
|
||||
headers['X-Real-IP'] = ip
|
||||
@@ -255,10 +255,10 @@ const createRequest = (uri, data, options) => {
|
||||
break
|
||||
|
||||
default:
|
||||
console.log('[ERR]', 'Unknown Crypto:', crypto)
|
||||
logger.error('Unknown Crypto:', crypto)
|
||||
break
|
||||
}
|
||||
// console.log(url);
|
||||
// logger.info(url);
|
||||
// settings创建
|
||||
let settings = {
|
||||
method: 'POST',
|
||||
@@ -300,16 +300,16 @@ const createRequest = (uri, data, options) => {
|
||||
settings.httpAgent = agent
|
||||
settings.proxy = false
|
||||
} else {
|
||||
console.error('代理配置无效,不使用代理')
|
||||
logger.error('代理配置无效,不使用代理')
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('代理URL解析失败:', e.message)
|
||||
logger.error('代理URL解析失败:', e.message)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
settings.proxy = false
|
||||
}
|
||||
// console.log(settings.headers);
|
||||
// logger.info(settings.headers);
|
||||
axios(settings)
|
||||
.then((res) => {
|
||||
const body = res.data
|
||||
@@ -348,14 +348,14 @@ const createRequest = (uri, data, options) => {
|
||||
if (answer.status === 200) {
|
||||
resolve(answer)
|
||||
} else {
|
||||
console.log('[ERR]', answer)
|
||||
logger.error(answer)
|
||||
reject(answer)
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
answer.status = 502
|
||||
answer.body = { code: 502, msg: err.message || err }
|
||||
console.log('[ERR]', answer)
|
||||
logger.error(answer)
|
||||
reject(answer)
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user