导航:首页 > 编程语言 > php获取agent

php获取agent

发布时间:2022-07-18 18:21:05

‘壹’ php使用代理方法获取远程网页的代码.

functioncurl_string($url,$user_agent,$proxy){

$ch=curl_init();
curl_setopt($ch,CURLOPT_PROXY,$proxy);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_USERAGENT,$user_agent);
curl_setopt($ch,CURLOPT_COOKIEJAR,"c:cookie.txt");
curl_setopt($ch,CURLOPT_HEADER,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_TIMEOUT,120);
$result=curl_exec($ch);
curl_close($ch);
return$result;

}

$url_page="http://www..com";
$user_agent="Mozilla/4.0";
$proxy="http://192.11.222.124:8000";//这里是http代理
$string=curl_string($url_page,$user_agent,$proxy);
echo$string;

‘贰’ php获得客户端的操作系统语言

//操作系统
public function getOS(){
$agent = $_SERVER['HTTP_USER_AGENT'];
$os = false;
if (eregi('win', $agent) && strpos($agent, '95'))
$os = 'Windows 95';
else if (eregi('win 9x', $agent) && strpos($agent, '4.90'))
$os = 'Windows ME';
else if (eregi('win', $agent) && ereg('98', $agent))
$os = 'Windows 98';
else if (eregi('win', $agent) && eregi('nt 5.1', $agent))
$os = 'Windows XP';
else if (eregi('win', $agent) && eregi('nt 5', $agent))
$os = 'Windows 2000';
else if (eregi('win', $agent) && eregi('nt 6.1', $agent))
$os = 'Windows 7';
else if (eregi('win', $agent) && eregi('nt 6', $agent))
$os = 'Windows Visita';
else if (eregi('win', $agent) && eregi('nt', $agent))
$os = 'Windows NT';
else if (eregi('win', $agent) && ereg('32', $agent))
$os = 'Windows 32';
else if (eregi('linux', $agent))
$os = 'Linux';
else if (eregi('unix', $agent))
$os = 'Unix';
else if (eregi('sun', $agent) && eregi('os', $agent))
$os = 'SunOS';
else if (eregi('ibm', $agent) && eregi('os', $agent))
$os = 'IBM OS/2';
else if (eregi('Mac', $agent) && eregi('PC', $agent))
$os = 'Macintosh';
else if (eregi('PowerPC', $agent))
$os = 'PowerPC';
else if (eregi('AIX', $agent))
$os = 'AIX';
else if (eregi('HPUX', $agent))
$os = 'HPUX';
else if (eregi('NetBSD', $agent))
$os = 'NetBSD';
else if (eregi('BSD', $agent))
$os = 'BSD';
else if (ereg('OSF1', $agent))
$os = 'OSF1';
else if (ereg('IRIX', $agent))
$os = 'IRIX';
else if (eregi('FreeBSD', $agent))
$os = 'FreeBSD';
else if (eregi('teleport', $agent))
$os = 'teleport';
else if (eregi('flashget', $agent))
$os = 'flashget';
else if (eregi('webzip', $agent))
$os = 'webzip';
else if (eregi('offline', $agent))
$os = 'offline';
else
$os = 'Unknown';

return $os;
}

‘叁’ 我用PHP $_SERVER['HTTP_USER_AGENT'] 获取到的客户浏览器信息只有 “Mozilla/4.0” 这是什么浏览器

简单来说,浏览分为两部分构成:shell+内核。其中shell的种类相对比较多,内核则比较少。shell是指浏览器的外壳,例如菜单工具栏目等,主要是提供给用户界面操作,参数设置等等,它是调用内核来实现各种功能的,内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块,也有一些浏览并不区分内核和外壳,从Mozilla将Gecko独立出来以后,才有了外壳和内核的明确划分。目前主流浏览有:IE6,IE8,Mozilla FireFox,Opera,Safari,chrome,Netscape等。
浏览器内核又可以分为两部分:渲染引擎和JS引擎。它负责取得网页的内容(HTML,XML,图像等等)、讯息整理(例如加入CSS等),然后会输出至显示器或者打印机。浏览器内核的不同对于网页的语法解释会有不同,所以渲染的效果也不同,所有网页浏览器,电子邮件客房端,以及其它需要编辑,显示网络内容的应用都需要内核,JS引擎则是解析javascript语言,执行javascript语言来实现网页的动态效果。最开始渲染引擎和JS引擎没有区分很明确,后来JS引擎越来越独立,内核引擎就倾向于只指渲染引擎,有一个网页标准计划小组制作了一个ACID来测试引擎的兼容性和性能,内核的种类很多,如加上没什么人使用的非商业的免费内核,可能会有十多种,但是常见的浏览器内核可以分为四种:Trient\Gecko\Presto\Webkit.
Trident 又称MSHTML,是微软开的渲染引擎(包含了javascript引擎JScript),它已深入了Window系统的骨髓,例如:Window Player,Window explore,OutLook express等都使用了,目前很多浏览都使用这个引擎,如IE,Maxthon(最新版本使用Webkit).
Gecko:是使用C++开发的,Open Source的渲染引擎,包括了SpiderMonkey(Rhino)。主要的使用者有Firefox。
Webkit:是苹果公司基于KHTML开发的,包括Webcore和JavaScriptCore(SquirrelFish,V8)两个引擎。主要使用者有Safari,chrome.
Presto:Opera software公司开发的,用于Opera引擎渲染,Macromedia Dreamweaver (MX版本及以上)和Adobe Creative Suite 2也使用了Presto的内核。
Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto内核:Opera7及以上
Webkit内核:Safari,Chrome等
1,Trident内核和W3C标准脱节。
2,Trident内核的大量Bug等安全问题没有得到解决,加上一些专家学者公开自己认为IE浏览器不安全的观点,使很多用户开始转向其他浏览器,FF,Opera就是这时期兴起的。
Gecko:这是Firefox 和 Flock 所采用内核,这个内核的优点就是功能强大、丰富,可以支持很多复杂网页效果和浏览器扩展接口,但是代价是也显而易见就是要消耗很多的资源,比如内存。
Presto:Opera 采用的是 Presto内核,Presto内核被称为公认的浏览网页速度最快的内核,这得益于它在开发时的天生优势,在处理JS脚本等脚本语言时,会比其他的内核快3倍左右,缺点就是为了达到很快的速度而丢掉了一部分网页兼容性。

‘肆’ 在PHP中如何模拟HTTP_USER_AGENT

在curl里可以设置UA

<?php
//client
$ch=curl_init();
curl_setopt_array($ch,
array(
CURLOPT_URL=>'http://localhost/ua.php',
CURLOPT_USERAGENT=>"YeRenChai_v1.0",
CURLOPT_RETURNTRANSFER=>True,
CURLOPT_FOLLOWLOCATION=>True,
)
);
$response=curl_exec($ch);
if(!$response)exit(curl_error($ch));
var_mp($response);
?>
<?php//server
echo$_SERVER['HTTP_USER_AGENT'];
?>

‘伍’ php JS动态 页面抓取 http://agent.qbao.com/agent/home 如何抓取 店铺名称,分销补贴, 加盟费等数据

$data=file_get_contents("http://agent.qbao.com/agent/web/hall");
$arr=json_decode($data,true);
echo"<pre>";
print_r($arr['data']['rows']);
echo"</pre>";

‘陆’ PHP 中使用http_user_agent的时候提醒没有定义

$_SERVER["HTTP_USER_AGENT"]获取客户端浏览器的型号,这个不是一定准确的,是可以随意伪造的

‘柒’ php 怎么获取浏览器的类型

获取客户端浏览器、IP地址操作系统类型等的方法(PHP)

=========================
获取客户端信息(浏览器、IP、OS)
<?php
/*
作用:取得客户端信息
参数:
返回:指定的资料
使用:
$code = new clientGetObj;
1、浏览器:$str = $code->getBrowse();
2、IP地址:$str = $code->getIP();
4、操作系统:$str = $code->getOS();
*/

class clientGetObj
{
function getBrowse()
{
global $_SERVER;
$Agent = $_SERVER['HTTP_USER_AGENT'];
$browser = '';
$browserver = '';
$Browser = array('Lynx', 'MOSAIC', 'AOL', 'Opera', 'JAVA', 'MacWeb', 'WebExplorer', 'OmniWeb');
for($i = 0; $i <= 7; $i ++){
if(strpos($Agent, $Browsers[$i])){
$browser = $Browsers[$i];
$browserver = '';
}
}
if(ereg('Mozilla', $Agent) && !ereg('MSIE', $Agent)){
$temp = explode('(', $Agent);
$Part = $temp[0];
$temp = explode('/', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[0];
$browserver = preg_replace('/([d.]+)/', '\1', $browserver);
$browserver = $browserver;
$browser = 'Netscape Navigator';
}
if(ereg('Mozilla', $Agent) && ereg('Opera', $Agent)) {
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(')', $Part);
$browserver = $temp[1];
$temp = explode(' ', $browserver);
$browserver = $temp[2];
$browserver = preg_replace('/([d.]+)/', '\1', $browserver);
$browserver = $browserver;
$browser = 'Opera';
}
if(ereg('Mozilla', $Agent) && ereg('MSIE', $Agent)){
$temp = explode('(', $Agent);
$Part = $temp[1];
$temp = explode(';', $Part);
$Part = $temp[1];
$temp = explode(' ', $Part);
$browserver = $temp[2];
$browserver = preg_replace('/([d.]+)/','\1',$browserver);
$browserver = $browserver;
$browser = 'Internet Explorer';
}
if($browser != ''){
$browseinfo = $browser.' '.$browserver;
} else {
$browseinfo = false;
}
return $browseinfo;
}

function getIP ()
{
global $_SERVER;
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
} else if (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
} else if (getenv('REMOTE_ADDR')) {
$ip = getenv('REMOTE_ADDR');
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}

function getOS ()
{
global $_SERVER;
$agent = $_SERVER['HTTP_USER_AGENT'];
$os = false;
if (eregi('win', $agent) && strpos($agent, '95')){
$os = 'Windows 95';
}
else if (eregi('win 9x', $agent) && strpos($agent, '4.90')){
$os = 'Windows ME';
}
else if (eregi('win', $agent) && ereg('98', $agent)){
$os = 'Windows 98';
}
else if (eregi('win', $agent) && eregi('nt 5.1', $agent)){
$os = 'Windows XP';
}
else if (eregi('win', $agent) && eregi('nt 5', $agent)){
$os = 'Windows 2000';
}
else if (eregi('win', $agent) && eregi('nt', $agent)){
$os = 'Windows NT';
}
else if (eregi('win', $agent) && ereg('32', $agent)){
$os = 'Windows 32';
}
else if (eregi('linux', $agent)){
$os = 'Linux';
}
else if (eregi('unix', $agent)){
$os = 'Unix';
}
else if (eregi('sun', $agent) && eregi('os', $agent)){
$os = 'SunOS';
}
else if (eregi('ibm', $agent) && eregi('os', $agent)){
$os = 'IBM OS/2';
}
else if (eregi('Mac', $agent) && eregi('PC', $agent)){
$os = 'Macintosh';
}
else if (eregi('PowerPC', $agent)){
$os = 'PowerPC';
}
else if (eregi('AIX', $agent)){
$os = 'AIX';
}
else if (eregi('HPUX', $agent)){
$os = 'HPUX';
}
else if (eregi('NetBSD', $agent)){
$os = 'NetBSD';
}
else if (eregi('BSD', $agent)){
$os = 'BSD';
}
else if (ereg('OSF1', $agent)){
$os = 'OSF1';
}
else if (ereg('IRIX', $agent)){
$os = 'IRIX';
}
else if (eregi('FreeBSD', $agent)){
$os = 'FreeBSD';
}
else if (eregi('teleport', $agent)){
$os = 'teleport';
}
else if (eregi('flashget', $agent)){
$os = 'flashget';
}
else if (eregi('webzip', $agent)){
$os = 'webzip';
}
else if (eregi('offline', $agent)){
$os = 'offline';
}
else {
$os = 'Unknown';
}
return $os;
}

}
?>

获取IP地址

说明:使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实IP 地址,就要使用Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取。不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 取到的值将是空的。因此,如果要在程序中使用此方法,可以这样处理:
......
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
......
即:如果客户端通过代理服务器,则取 HTTP_X_FORWARDED_FOR 的值,如果没通过代理服务器,就取 REMOTE_ADDR 的值。

方法一:
function real_ip($type)
{
if ($_SERVER["HTTP_X_FORWARDED_FOR"])
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$proxy = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$proxy = $_SERVER["REMOTE_ADDR"];
}
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else
{
if ($_SERVER["HTTP_CLIENT_IP"])
{
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
else
{
$ip = $_SERVER["REMOTE_ADDR"];
}
}
if($type=='ip')return $ip;

if($type=='proxy')return $proxy;
}

方法二:
<?
function iptype1 () {
if (getenv("HTTP_CLIENT_IP")) {
?return getenv("HTTP_CLIENT_IP");
}
else {
?return "none";
}
}
function iptype2 () {
if (getenv("HTTP_X_FORWARDED_FOR")) {
?return getenv("HTTP_X_FORWARDED_FOR");
}
else {
?return "none";
}
}
function iptype3 () {
if (getenv("REMOTE_ADDR")) {
?return getenv("REMOTE_ADDR");
}
else {
?return "none";
}
}
function ip() {
$ip1 = iptype1();
$ip2 = iptype2();
$ip3 = iptype3();
if (isset($ip1) && $ip1 != "none" && $ip1 != "unknown") {
?return $ip1;
}
elseif (isset($ip2) && $ip2 != "none" && $ip2 != "unknown") {
?return $ip2;
}
elseif (isset($ip3) && $ip3 != "none" && $ip3 != "unknown") {
?return $ip3;
}?
else {
return "none";
}
}

Echo ip();
?>

方法三:
01 : function ipCheck() {
02 : if (getenv( 'HTTP_CLIENT_IP' )) {
03 : $ip = getenv( 'HTTP_CLIENT_IP' );
04 : }
05 : elseif (getenv( 'HTTP_X_FORWARDED_FOR' )) {
06 : $ip = getenv( 'HTTP_X_FORWARDED_FOR' );
07 : }
08 : elseif (getenv( 'HTTP_X_FORWARDED' )) {
09 : $ip = getenv( 'HTTP_X_FORWARDED' );
10 : }
11 : elseif (getenv( 'HTTP_FORWARDED_FOR' )) {
12 : $ip = getenv( 'HTTP_FORWARDED_FOR' );
13 : }
14 : elseif (getenv( 'HTTP_FORWARDED' )) {
15 : $ip = getenv( 'HTTP_FORWARDED' );
16 : }
17 : else {
18 : $ip = $_SERVER[ 'REMOTE_ADDR' ];
19 : }
20 : return $ip;
21 : }

‘捌’ php中想实现在function里定义一个全局数组,用agent作为下标,判断该数组中是否有该名称,代码怎么写

function里面可以定义全局变量(数组类型也是可以的),例如:
function test(){
globals $gArr;
$gArr[1]=123;
}

主程序或者其它function可以直接使用上面定义的数组,例如:
function chkeck($agent){
globals $gArr;
if (isset($gArr[$agent])) echo "$agent 已经定义。";
else echo "$agent 没有定义。";
}

‘玖’ php.ini中的user_agent是什么意思有什么作用

而是你服务器上的程序去访问其他网络页面时的USER_AGENT。
别人网站有些为了防止非浏览器的访问,防止被采集,就会做浏览器检测,检测user_agent.
如果你不伪装,不设就采集不到了。
通常的访问是浏览器->网站,网站获得的是你的浏览器信息。
而你如果用些fopen,file_get_contents,socket之类的访问别人网站就是
对方的网站如果分析user_agent,发现是php,可能禁止你获取。
这时候你可以修改user_agent来伪造成浏览器请求。

阅读全文

与php获取agent相关的资料

热点内容
国产系统怎么解压 浏览:552
战双程序员 浏览:483
him触摸编程软件 浏览:931
植物大战僵尸存档怎么转移安卓 浏览:852
java栈的元素 浏览:737
程序员与篮球事件 浏览:675
app反编译不完整 浏览:788
电脑上的文件夹怎么调整 浏览:7
服务器无响应是什么原因呀 浏览:984
wd文档里的app怎么制作 浏览:513
电脑里的文件夹没有了一般能恢复吗 浏览:418
哪里有配加密钥匙的 浏览:210
服务器开不了机怎么把数据弄出来 浏览:958
gif动态图片怎么压缩 浏览:521
黑猴子棒球压缩文件解压密码 浏览:631
如何让app适应不同的手机屏幕大小 浏览:10
苹果手机如何给安卓手机分享软件 浏览:761
苹果电脑怎么运行腾讯云服务器 浏览:59
明日之后沙石堡命令助手 浏览:261
蛋糕店用什么样的app 浏览:877