Maison  >  Article  >  développement back-end  >  如何获取一个网址的真实地址?

如何获取一个网址的真实地址?

WBOY
WBOYoriginal
2016-06-23 14:27:013743parcourir

如:http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB04MQzdgG69RGcaJPb63yl1mhX3LeBaO%2FOtwy7R8Qcl0UjI6%2FqP8Sg%2Fr0KKB%2F8j9kgdmwzqD5GpF5e%2FOaK7gEC99Q3u9Kesb3rDlDmTYOYaI5mq7vcX9zp6SLHe68sHep6ixQ%2F8tmcFXqP%2Fg9Uw5M1TkKjrIraMnDk%3D&spm=2014.12060692.1.0
这个地址打开后浏览器上显示的真实地址是
http://shop33963430.taobao.com/shop/view_shop.htm?user_number_id=22902307&ali_trackid=2:mm_123456_0_0:1358301023_4k3_1682494700&spm=2014.12060692.1.0
如何用php获得这个真实地址呢(模拟访问获取也可以的)


回复讨论(解决方案)

基本上灰常难,你看下边的url
http://www.7di.net/index-main-73b11748d50427dde7044694c7cb681e8133b89dee721550-4.shtml

其实他的真实地址是
http://www.7di.net/index.php?w=index&m=main&a={'a':'aa'}&p=4

73b11748d50427dde7044694c7cb681e8133b89dee721550?一串?容我用了自定?的加密方法加密?容,然後??,??之後再解密?原

基本上灰常难,你看下边的url
http://www.7di.net/index-main-73b11748d50427dde7044694c7cb681e8133b89dee721550-4.shtml

其实他的真实地址是
http://www.7di.net/index.php?w=index&m=main&a={'a':'aa'}&p=4

73b117……

能不能用php模拟浏览下来获取呢

不能说真实地址,而是跳转后的地址。一路跟踪好了。

不能说真实地址,而是跳转后的地址。一路跟踪好了。
如何用php跟踪呢

我看了他的代码,貌似是用js将上面的代码解密,然后跳转的,我贴下这个代码,麻烦帮我看下他是啥原理呢,用php如何实现的

<script type='text/javascript'>function htmlspecialchars(str){      str = str.replace(/</g, '<');    str = str.replace(/>/g, '>');    str = str.replace(/"/g, '"');    str = str.replace(/'/g, '&#039;');    return str;}function bol(){	var inf = (top.location!=self.location);	var qs = location.search.split("?")[location.search.split("?").length-1].split("&");	qso = {};	for(var i=0;i<qs.length;i++){		if(qs[i]=="")continue;		var tmpa = qs[i].split("=");		qso[tmpa[0]] = tmpa[1]?tmpa[1]:"";	}    var tu = unescape(qso.tu);    if(htmlspecialchars(tu).length != tu.length){        exit;    }	if(inf){		var oi = document.createElement("iframe");			oi.id="iobj"		oi.border=0;		oi.frameBorder=0;		oi.style.height="1px"		oi.style.width="1px"		document.body.appendChild(oi);		var cd = oi.contentWindow.document;		cd.write('<ht'+'ml><bo'+'dy style="margin:0px;padding:0px"></scr'+'ipt><scr'+'ipt src="http://js.tongji.linezing.com/1023331/tongji.js" type="text/javascript"></scr'+'ipt><noscr'+'ipt><a href="http://www.linezing.com"><img  src="http://img.tongji.linezing.com/1023331/tongji.gif"/ alt="如何获取一个网址的真实地址?" ></a></noscr'+'ipt></bo'+'dy></ht'+'ml>');		window.setTimeout(function(){cd.close();if(qso.tu)location.href = unescape(qso.tu);},1000);				}else{		if(qso.co&&qso.co!=""){			document.cookie="tk_trace="+(qso.co)+";path=/;domain=.taobao.com";		}        if(qso.tu && (qso.tu.indexOf("http%3A%2F%2Fs.click.taobao.com%2F")===0 || qso.tu.indexOf("http%3A%2F%2Fs.click.alimama.com%2F")===0            || qso.tu.indexOf("http%3A%2F%2Fitem8.taobao.com%2F")===0 || qso.tu.indexOf("http%3A%2F%2Fshop8.taobao.com%2F")===0)){		    if(!window.attachEvent){		      document.write('<input   style="max-width:90%" type="button" id="exe" value="" onclick="window.location=\''+unescape(qso.tu)+'\'">');		      document.getElementById('exe').click();		    }else{		      document.write('<a style="display:none" href="'+unescape(qso.tu)+'" id="exe"></a>');		      document.getElementById('exe').click();	   		}		}	}}//end of bol()bol();</script>

用fsockopen来获取网页源码,一般弄到header信息,分析Location也就足够了。
curl也可以。

用fsockopen来获取网页源码,一般弄到header信息,分析Location也就足够了。
curl也可以。
location不中,如:http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB04MQzdgG69RGcaJPb63yl1mhX3LeBaO%2FOtwy7R8Qcl0UjI6%2FqP8Sg%2Fr0KKB%2F8j9kgdmwzqD5GpF5e%2FOaFn7VYVKYkVbYTomVFsQ1ga22LEn2hsw9HDbPgkjHY3dQ3EB1dtO8wMdh%2FXsstKK75B31PgeqT%2BOyRfu0Y%3D&spm=2014.12060692.1.0

获取的地址:http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB04MQzdgG69RGcaJPb63yl1mhX3LeBaO%252FOtwy7R8Qcl0UjI6%252FqP8Sg%252Fr0KKB%252F8j9kgdmwzqD5GpF5e%252FOaFn7VYVKYkVbYTomVFsQ1ga22LEn2hsw9HDbPgkjHY3dQ3EB1dtO8wMdh%252FXsstKK75B31PgeqT%252BOyRfu0Y%253D%26spm%3D2014.12060692.1.0%26ref%3D%26et%3DjFBB1tzmRn8vGg%253D%253D

然后就没了,或者如何往下分析呢

获取后继续获取。淘宝的那个好像要跳4-5次。

获取后继续获取。淘宝的那个好像要跳4-5次。
继续获取获取不到了

注意cookie问题。一步一步进去,最终还是可以得到地址的。

有一?思路可行,不知你能力?不??
把你要跟?的url放入iframe???,延?一定的??之後用js?取iframe??在的url值,通?ajax把?取到的url提交?php

有一?思路可行,不知你能力?不??
把你要跟?的url放入iframe???,延?一定的??之後用js?取iframe??在的url值,通?ajax把?取到的url提交?php
不太可行因为要通过php处理的

引用 11 楼 sibang 的回复:有一?思路可行,不知你能力?不??
把你要跟?的url放入iframe???,延?一定的??之後用js?取iframe??在的url值,通?ajax把?取到的url提交?php
不太可行因为要通过php处理的 通?ajax把?取到的url提交?php
注意?句?

好东西
学习了

应该不能应该不能

学习一下,    正想知道

您好,问题解决了没有?我有别的解决办法,就是有点慢……

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:php文件上传的问题Article suivant:php 数组字符,转换数组