injahow / meting-api

Meting API for APlayer
https://api.injahow.cn/meting/
MIT License
263 stars 82 forks source link

[功能增加请求] 发送request时header添加X-Real-IP #4

Closed kcn3388 closed 2 years ago

kcn3388 commented 3 years ago

原因如下,使用国外ip访问时会遭遇网易云的阻拦,另一api repo给出了解决方法。

https://github.com/Binaryify/NeteaseCloudMusicApi/issues/29#issuecomment-298358438

Update: 报错原因 海外解析播放服务器会强制解析至localhost。 image 解决方法如下 https://fireattack.wordpress.com/2016/03/27/netease-music/ 该解决方法只对当前客户端有效,希望可以在api处进行处理

injahow commented 3 years ago

image Meting源码中已存在随机X-Real-IP,可否提供问题的具体详情

kcn3388 commented 3 years ago

image Meting源码中已存在随机X-Real-IP,可否提供问题的具体详情

挂全局梯子的时候,会导致获取音乐链接出错(原因是m10.music.126.net被解析至127.0.0.1) image

kcn3388 commented 3 years ago

歌单id:450007071 实例地址:vultr:obsidian.kcn3388.club 腾讯云:kcn3388.com api地址:meting.kcn3388.club 全局海外ip的时候就报以上错误

injahow commented 3 years ago

image 请尝试注释如图标记代码,请问使用http请求是否能够正常请求

kcn3388 commented 3 years ago

image 请尝试注释如图标记代码,请问使用http请求是否能够正常请求

经测试无效

injahow commented 3 years ago

...... if ($m_url[4] != 's') { $m_url = str_replace('http', 'https', $m_url); } $m_url_arr = parse_url($m_url); if($m_url_arr['host'] == 'm10.music.126.net'){ $m_url_arr['host'] = 'm7.music.126.net';//海外ip未测试,可行性未知 $m_url_arr['scheme'] .= '://'; $m_url = implode('', $m_url_arr); } header('Location: ' . $m_url); ...... 分析发现海外ip的m8地址会404但可以无源请求访问 目前只遇到m10会出现CDN污染,请使用如上代码强制更换host,是否可以正常请求?

kcn3388 commented 3 years ago

if ($m_url[4] != 's') { $m_url = str_replace('http', 'https', $m_url); } $m_url_arr = parse_url($m_url); if($m_url_arr['host'] == 'm10.music.126.net'){ $m_url_arr['host'] = 'm7.music.126.net';//海外ip未测试,可行性未知 $m_url_arr['scheme'] .= '://'; $m_url = implode('', $m_url_arr); } header('Location: ' . $m_url);

m7海外可用国内不可用,改了以后是国内报403国外没问题

更新:m7海外国内均不可用,报403

kcn3388 commented 3 years ago

海外IP应该是彻底炸了,只要本机挂了全局梯子就不行了

injahow commented 3 years ago

海外IP应该是彻底炸了,只要本机挂了全局梯子就不行了

貌似没什么法,解析的地址就是不让海外IP播放