修复dns查询问题

pull/590/head
lyswhut 2021-06-18 15:13:15 +08:00
parent 94bf9eae8b
commit 507f66b3b6
9 changed files with 27 additions and 26 deletions

View File

@ -1,16 +1,15 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_test = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/bd/${songInfo.songmid}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -1,16 +1,15 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_test = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/kg/${songInfo._types[type].hash}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -1,15 +1,14 @@
import { httpFetch } from '../../request'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_temp = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('tm.tempmusic.tk')
const requestObj = httpFetch(`http://tm.tempmusic.tk/url/kw/${songInfo.songmid}/${type}`, {
method: 'get',
headers,
timeout,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -1,7 +1,7 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_test = {
// getMusicUrl(songInfo, type) {
@ -16,12 +16,11 @@ const api_test = {
// return requestObj
// },
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/kw/${songInfo.songmid}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -1,16 +1,15 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_test = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/mg/${songInfo.copyrightId}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -1,16 +1,15 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_messoer = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/tx/${songInfo.songmid}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -25,9 +25,9 @@ export const toMD5 = str => crypto.createHash('md5').update(str).digest('hex')
const ipMap = new Map()
export const getHostIp = hostname => {
const ip = ipMap.get(hostname)
if (typeof ip === 'string') return ip
if (ip === true) return
const result = ipMap.get(hostname)
if (typeof result === 'object') return result
if (result === true) return
ipMap.set(hostname, true)
// console.log(hostname)
dns.lookup(hostname, {
@ -36,6 +36,13 @@ export const getHostIp = hostname => {
}, (err, address, family) => {
if (err) return console.log(err)
// console.log(address, family)
ipMap.set(hostname, address)
ipMap.set(hostname, { address, family })
})
}
export const dnsLookup = (hostname, options, callback) => {
const result = getHostIp(hostname)
if (result) return callback(null, result.address, result.family)
dns.lookup(hostname, options, callback)
}

View File

@ -1,16 +1,15 @@
import { httpFetch } from '../../request'
import { requestMsg } from '../../message'
import { headers, timeout } from '../options'
import { getHostIp } from '../utils'
import { dnsLookup } from '../utils'
const api_test = {
getMusicUrl(songInfo, type) {
const ip = getHostIp('ts.tempmusic.tk')
const requestObj = httpFetch(`http://ts.tempmusic.tk/url/wy/${songInfo.songmid}/${type}`, {
method: 'get',
timeout,
headers,
host: ip,
lookup: dnsLookup,
family: 4,
})
requestObj.promise = requestObj.promise.then(({ body }) => {

View File

@ -263,12 +263,13 @@ const fetchData = async(url, method, {
console.log('---start---', url)
headers = Object.assign({}, headers)
if (headers[bHh]) {
const path = url.replace(/^https?:\/\/[\w.:]+\//, '/')
let s = Buffer.from(bHh, 'hex').toString()
s = s.replace(s.substr(-1), '')
s = Buffer.from(s, 'base64').toString()
let v = process.versions.app.split('-')[0].split('.').map(n => n.length < 3 ? n.padStart(3, '0') : n).join('')
let v2 = process.versions.app.split('-')[1] || ''
headers[s] = !s || `${(await handleDeflateRaw(Buffer.from(JSON.stringify(`${url}${v}`.match(regx), null, 1).concat(v)).toString('base64'))).toString('hex')}&${parseInt(v)}${v2}`
headers[s] = !s || `${(await handleDeflateRaw(Buffer.from(JSON.stringify(`${path}${v}`.match(regx), null, 1).concat(v)).toString('base64'))).toString('hex')}&${parseInt(v)}${v2}`
delete headers[bHh]
}
return request(url, {