在php.ini中设置user_agent有什么作用?会导致,任何用户浏览时,获取到user_agent的值都是php.ini中所指定内容吗?

seai 2010-06-05 11:59:44
还是别的影响?


我的理解:在不指定user_agent的情况下,使用不同的浏览器进行访问,会将各自的user_agent数据提交到服务端。

但在php.ini指定了值的情况下会发生什么?在抓包分析中发现,不论是否设置user_agent,访问过程中浏览器都提交user_agent数据到服务器,那么设置user_agent会发生什么?
...全文
706 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 amani11 的回复:]
你用fopen,file_get_contents等,获取网络资源的时候

对方的网站如果分析user_agent,发现是php,当然,你可以修改
[/Quote]
请问怎么修改
stroller111 2011-06-22
  • 打赏
  • 举报
回复
在代理访问的时候会用到这个user agent的
平常访问应该不会用到
seai 2010-10-19
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yukon12345 的回复:]

╮(╯▽╰)╭我看你真是没弄懂,我说的 意思是,php也可以访问别人网站的,知道不?
这时候,别人网站有些为了防止非浏览器的访问,防止被采集,就会做浏览器检测,检测user_agent.
如果你不伪装,不设就采集不到了。
通常的访问是浏览器->网站,网站获得的是你的浏览器信息
而你如果用些fopen,socket之类的访问别人网站就是
PHP code
<?php
$handle=f……
[/Quote]


说的太细致了!
步慢生错 2010-07-12
  • 打赏
  • 举报
回复
╮(╯▽╰)╭我看你真是没弄懂,我说的 意思是,php也可以访问别人网站的,知道不?
这时候,别人网站有些为了防止非浏览器的访问,防止被采集,就会做浏览器检测,检测user_agent.
如果你不伪装,不设就采集不到了。
通常的访问是浏览器->网站,网站获得的是你的浏览器信息
而你如果用些fopen,socket之类的访问别人网站就是
<?php
$handle=fopen("http://163.com",r);
while(!feof($handle))
{
// Read each line and add to $myLine
$myLine.=fgets($handle,255);
}
echo $myLine;
fclose($hanle);
?>

浏览器->你的本地服务器->网站,网站获得的是服务器里php的php.ini设置的信息。
maole413149 2010-07-11
  • 打赏
  • 举报
回复
mark
caimijiazu 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 seai 的回复:]
引用 3 楼 caimijiazu 的回复:

user_agent="PHP"
表示通过PHP脚本访问网络
在一些浏览器不无法正确显示的情况下,你可以把PHP更改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器进行配置,这样可以让PHP编译的时候自动识别的user_agent更改为这个参数的值。
不知道自己说清楚了没,我……
[/Quote]
直接这样就可以了啊。
<p><?php echo $_SERVER['HTTP_USER_AGENT']; ?> </p>
Dleno 2010-07-11
  • 打赏
  • 举报
回复
PHP.INI里设置USER_AGENT并不是设置的用户访问你服务器的USER_AGENT,而是你服务器上的程序去访问其他网络页面时的USER_AGENT
amani11 2010-07-11
  • 打赏
  • 举报
回复

//你这样测试
//假如是本机,假如文件是s.php user_agent="PHP"前面分号去掉

if(isset($_GET['t']))
{
print_r(apache_request_headers());
}
else
{
echo file_get_contents("http://localhost/s.php?t=1");
}



LuciferStar 2010-07-11
  • 打赏
  • 举报
回复
估计还是缺省值的问题吧。
seai 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 yukon12345 的回复:]

<?php echo getenv("HTTP_USER_AGENT"); ?>输出内容无任何变化。。。

user_agent是打开页面时,浏览器通过http头传递给对方服务器的,php.ini里面设置主要是伪装成浏览器。你这样输出当然没有变化。因为你是使用浏览器打开这一页的。这值是浏览器或请求方传给服务器。你换个浏览器就知道了。
[/Quote]


换个浏览器就又变化了?那么.ini中的设置有什么作用呢?不论我设置什么值,它都只和用户使用的浏览器相关的话?
步慢生错 2010-07-11
  • 打赏
  • 举报
回复
<?php echo getenv("HTTP_USER_AGENT"); ?>输出内容无任何变化。。。

user_agent是打开页面时,浏览器通过http头传递给对方服务器的,php.ini里面设置主要是伪装成浏览器。你这样输出当然没有变化。因为你是使用浏览器打开这一页的。这值是浏览器或请求方传给服务器。你换个浏览器就知道了。
amani11 2010-07-11
  • 打赏
  • 举报
回复
你用fopen,file_get_contents等,获取网络资源的时候

对方的网站如果分析user_agent,发现是php,当然,你可以修改
seai 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 caimijiazu 的回复:]

user_agent="PHP"
表示通过PHP脚本访问网络
在一些浏览器不无法正确显示的情况下,你可以把PHP更改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器进行配置,这样可以让PHP编译的时候自动识别的user_agent更改为这个参数的值。
不知道自己说清楚了没,我老婆说她没看懂
[/Quote]


确实没看懂。。。

就想弄明白,php中怎样获取到user_agent的值?我使用getenv("HTTP_USER_AGENT")获取的值总是"PHP",不论如何修改配置都不变。
caimijiazu 2010-07-11
  • 打赏
  • 举报
回复
user_agent="PHP"
表示通过PHP脚本访问网络
在一些浏览器不无法正确显示的情况下,你可以把PHP更改成Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)来模拟浏览器进行配置,这样可以让PHP编译的时候自动识别的user_agent更改为这个参数的值。
不知道自己说清楚了没,我老婆说她没看懂
seai 2010-07-11
  • 打赏
  • 举报
回复
顶起来
seai 2010-06-06
  • 打赏
  • 举报
回复
补充:修改php.ini中user_agent值,重启IIS后发现,<?php echo getenv("HTTP_USER_AGENT"); ?>输出内容无任何变化。。。

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧