[外掛] 找尋外掛[已解決]

phpBB 2 MOD Support
無論是官方或非官方認證之外掛,安裝與使用問題討論。
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

主題已鎖定
jiaqingshu
星球普通子民
星球普通子民
文章: 12
註冊時間: 2005-02-28 12:08

[外掛] 找尋外掛[已解決]

文章 jiaqingshu »

各位大大,小弟正在找尋外掛,功能是能將user端的ip、來自於那裡、作業系統、及瀏覽器的種類!
已爬過文,但好像無此外掛,有大大說是以java的方式來承現,還請各位大大幫忙指導!
最後由 jiaqingshu 於 2005-05-12 14:50 編輯,總共編輯了 1 次。
jiaqingshu
星球普通子民
星球普通子民
文章: 12
註冊時間: 2005-02-28 12:08

文章 jiaqingshu »

各位大大,小弟在網路上有找到一篇文章是有關於這一方面的問題

代碼: 選擇全部

<?php
function browseinfo()
 { 
$browser="";$browserver="";
$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
$Agent = $GLOBALS["HTTP_USER_AGENT"];
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(IE)";
}
if ($browser!="") {
$browseinfo = "$browser$browserver";
}
else {
$browseinfo = "&yen;&frac14;&ordf;&frac34;";
}
return $browseinfo;
} 
function osinfo() { 
$os=""; 
$Agent = $GLOBALS["HTTP_USER_AGENT"]; 
if (eregi('win',$Agent) && strpos($Agent, '95')) { 
$os="Windows 95"; 
} 
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { 
$os="Windows ME"; 
} 
elseif (eregi('win',$Agent) && ereg('98',$Agent)) { 
$os="Windows 98"; 
} 
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { 
$os="Windows XP"; 
} 
elseif (eregi('win',$Agent) && eregi('nt 5',$Agent)) { 
$os="Windows 2000"; 
} 

elseif (eregi('win',$Agent) && eregi('nt 5.2',$Agent)) {
$os="Windows Server 2003";
}
elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
$os="Windows Longhorn XP";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { 
$os="Windows NT"; 
} 
elseif (eregi('win',$Agent) && ereg('32',$Agent)) { 
$os="Windows 32"; 
} 
elseif (eregi('linux',$Agent)) { 
$os="Linux"; 
} 
elseif (eregi('unix',$Agent)) { 
$os="Unix"; 
} 
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { 
$os="SunOS"; 
} 
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { 
$os="IBM OS/2"; 
} 
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { 
$os="Macintosh"; 
} 
elseif (eregi('PowerPC',$Agent)) { 
$os="PowerPC"; 
} 
elseif (eregi('AIX',$Agent)) { 
$os="AIX"; 
} 
elseif (eregi('HPUX',$Agent)) { 
$os="HPUX"; 
} 
elseif (eregi('NetBSD',$Agent)) { 
$os="NetBSD"; 
} 
elseif (eregi('BSD',$Agent)) { 
$os="BSD"; 
} 
elseif (ereg('OSF1',$Agent)) { 
$os="OSF1"; 
} 
elseif (ereg('IRIX',$Agent)) { 
$os="IRIX"; 
} 
elseif (eregi('FreeBSD',$Agent)) { 
$os="FreeBSD"; 
} 
if ($os=='') $os = "Unknown"; \r
return $os; 
} 

function ip_check($ip){ 
$ipdatafolder="ipdata"; 

if ($ip=="") 
$ip=$REMOTE_ADDR; 
$ipa=split("[\.]",$ip); 

$ips=$ipa[0]*1000000000+$ipa[1]*1000000+$ipa[2]*1000+$ipa[3]; 
$ipa[0]=intval($ipa[0]); 
if (file_exists("ipdata/$ipa[0].txt")) { 
$datafile="ipdata/$ipa[0].txt"; 
} 
else { 
$datafile="ipdata/other.txt"; 
} 
$from1=""; 
$from2=""; 
$from=""; 
$ipdata=file($datafile); 
for ($i=0;$i<count($ipdata);$i++) { 
$ipb=split("[\|]",$ipdata[$i]); 
$from1=$ipb[2]; 
$from2=$ipb[3]; 
$ipc=split("[\.]",$ipb[0]); 
$ipd=split("[\.]",$ipb[1]); 
$ipbegin =$ipc[0]*1000000000+$ipc[1]*1000000+$ipc[2]*1000+$ipc[3]; 
$ipend =$ipd[0]*1000000000+$ipd[1]*1000000+$ipd[2]*1000+$ipd[3]; 

if (($ips<=$ipend) && ($ips>=$ipbegin)) { 
$from=$from1.$from2; 
break; 
} 
} 
if ($from1=="") $from="&yen;&frac14;&ordf;&frac34;°&Iuml;°&igrave;"; 
return $from; 
} 


$ipaddress=$REMOTE_ADDR; 
$address=ip_check($ipaddress); 
$browser=browseinfo();
$os=osinfo();

?>
只要在echo $ipaddress $address $browser $os 就可以將IP、IP來源、作業系統、瀏覽器版本給呼叫出來,但小弟想做在個人資料裡面,有爬過,需將$ipaddress $address $browser $os 的值寫入usercp_viewprofile.php裡,然後在導入profile_view_body.tpl輸出,但小弟無法將值擺入usercp_viewprofile.php裡,然後在導入profile_view_body.tpl輸出,還煩請各位大大指點!謝謝!
jiaqingshu
星球普通子民
星球普通子民
文章: 12
註冊時間: 2005-02-28 12:08

文章 jiaqingshu »

各位大大!經過小弟這幾天的研究.小弟將下面的code放入\r

代碼: 選擇全部

<?php
function browseinfo()
 { 
$browser="";$browserver="";
$Browsers =array("Lynx","MOSAIC","AOL","Opera","JAVA","MacWeb","WebExplorer","OmniWeb");
$Agent = $GLOBALS["HTTP_USER_AGENT"];
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(IE)";
}
if ($browser!="") {
$browseinfo = "$browser$browserver";
}
else {
$browseinfo = "&yen;&frac14;&ordf;&frac34;";
}
return $browseinfo;
} 
function osinfo() { 
$os=""; 
$Agent = $GLOBALS["HTTP_USER_AGENT"]; 
if (eregi('win',$Agent) && strpos($Agent, '95')) { 
$os="Windows 95"; 
} 
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) { 
$os="Windows ME"; 
} 
elseif (eregi('win',$Agent) && ereg('98',$Agent)) { 
$os="Windows 98"; 
} 
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) { 
$os="Windows XP"; 
} 
elseif (eregi('win',$Agent) && eregi('nt 5',$Agent)) { 
$os="Windows 2000"; 
} 

elseif (eregi('win',$Agent) && eregi('nt 5.2',$Agent)) {
$os="Windows Server 2003";
}
elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
$os="Windows Longhorn XP";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) { 
$os="Windows NT"; 
} 
elseif (eregi('win',$Agent) && ereg('32',$Agent)) { 
$os="Windows 32"; 
} 
elseif (eregi('linux',$Agent)) { 
$os="Linux"; 
} 
elseif (eregi('unix',$Agent)) { 
$os="Unix"; 
} 
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) { 
$os="SunOS"; 
} 
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) { 
$os="IBM OS/2"; 
} 
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) { 
$os="Macintosh"; 
} 
elseif (eregi('PowerPC',$Agent)) { 
$os="PowerPC"; 
} 
elseif (eregi('AIX',$Agent)) { 
$os="AIX"; 
} 
elseif (eregi('HPUX',$Agent)) { 
$os="HPUX"; 
} 
elseif (eregi('NetBSD',$Agent)) { 
$os="NetBSD"; 
} 
elseif (eregi('BSD',$Agent)) { 
$os="BSD"; 
} 
elseif (ereg('OSF1',$Agent)) { 
$os="OSF1"; 
} 
elseif (ereg('IRIX',$Agent)) { 
$os="IRIX"; 
} 
elseif (eregi('FreeBSD',$Agent)) { 
$os="FreeBSD"; 
} 
if ($os=='') $os = "Unknown"; 
return $os; 
} 

function ip_check($ip){ 
$ipdatafolder="ipdata"; 

if ($ip=="") 
$ip=$REMOTE_ADDR; 
$ipa=split("[\.]",$ip); 

$ips=$ipa[0]*1000000000+$ipa[1]*1000000+$ipa[2]*1000+$ipa[3]; 
$ipa[0]=intval($ipa[0]); 
if (file_exists("ipdata/$ipa[0].txt")) { 
$datafile="ipdata/$ipa[0].txt"; 
} 
else { 
$datafile="ipdata/other.txt"; 
} 
$from1=""; 
$from2=""; 
$from=""; 
$ipdata=file($datafile); 
for ($i=0;$i<count($ipdata);$i++) { 
$ipb=split("[\|]",$ipdata[$i]); 
$from1=$ipb[2]; 
$from2=$ipb[3]; 
$ipc=split("[\.]",$ipb[0]); 
$ipd=split("[\.]",$ipb[1]); 
$ipbegin =$ipc[0]*1000000000+$ipc[1]*1000000+$ipc[2]*1000+$ipc[3]; 
$ipend =$ipd[0]*1000000000+$ipd[1]*1000000+$ipd[2]*1000+$ipd[3]; \r

if (($ips<=$ipend) && ($ips>=$ipbegin)) { 
$from=$from1.$from2; 
break; 
} 
} 
if ($from1=="") $from="&yen;&frac14;&ordf;&frac34;°&Iuml;°&igrave;"; 
return $from; 
} 


$ipaddress=$REMOTE_ADDR; 
$address=ip_check($ipaddress); 
$browser=browseinfo();
$os=osinfo();

?>
usercp_viewprofile.php裡,也在後方加入\r

代碼: 選擇全部

$template->assign_vars(array(
'USER_IP' => sprintf($lang['User_ip'],$REMOTE_ADDR),
'User_address'   => sprintf($lang['User_address'],$address),
'User_browser'   => sprintf($lang['User_browser'],$browser),
'User_os' => sprintf($lang['User_os'],$os)
)
);
$cm_viewprofile->post_vars($template,$profiledata,$userdata);
$template->pparse('body');
然後在profile_view_body.tpl也放入\r

代碼: 選擇全部

<tr>
          <td colspan="4" align="right" valign="middle" nowrap class="row2"><div align="left">{USER_IP}</div></td>
        </tr>
 
		<tr> 
		  <td colspan="4" align="right" valign="middle" nowrap class="row2" ><div align="left">{User_address}</div></td>
	    </tr>
				<tr> 
		  <td colspan="4" align="right" valign="middle" nowrap="nowrap" class="row2" ><div align="left">{User_os} </div></td>
	    </tr>
		<tr> 
		  <td colspan="4" align="right" valign="middle" nowrap class="row2" ><div align="left">{User_browser}</div></td>
	    </tr>
在lang_main.php也有加入\r

代碼: 選擇全部

$lang['User_ip'] = 'IP:<B>%s</B>';
$lang['User_address'] = "來自:<B>%s</B>"; 
$lang['User_browser'] = "操作系統:<B>%s</B>"; 
$lang['User_os'] = "瀏覽器:<B>%s</B>"; 
但卻無法捉到正確的值,想請教諸位大大,我是否有漏掉的地方,還請各位大大不吝指教!謝謝! 
主題已鎖定

回到「外掛問題討論」