伺服器訪問項目時實現ip跳轉
A. 客戶端訪問.NET伺服器A,伺服器A跳轉到JAVA伺服器B,B如何獲取到A的IP。
從如下幾種跳轉模式的比較可以看出,你這個功能用直接的方式實現不了,因為A和B建立不了關聯,這種模式最好還是用同域的模式,如果不能保證同域,那麼另外一種方式就是A跳轉的時候直接攜帶用戶名和密碼來驗證,這樣對於戶體驗來說是沒什麼區別的.
1 response.redirect 這個跳轉頁面的方法跳轉的速度不快,因為它要走2個來回(2次postback),但他可以跳 轉到任何頁面,沒有站點頁面限制(即可以由雅虎跳到新浪),同時不能跳過登錄保護。但速度慢是其最大缺陷!redirect跳轉機制:首先是發送一個http請求到客戶端,通知需要跳轉到新頁面,然後客戶端在發送跳轉請求到伺服器端。需要注意的是跳轉後內部空間保存的所有數據信息將會丟失,所以需要用到session。2 server.transfer 速度快,只需要一次postback ,但是。。。。他必須是在同一個站點下,因為它是server的一個方法。另外,他能跳過登錄保護。你可以寫個小程序試試:設計一個由頁面一到頁面二的跳轉,但要進入到頁面二需要登錄,form認證,但如果跳轉語句使用transfer的話,那就不會彈出登錄頁面了。這個方法的重定向請求是發生在伺服器端,所以瀏覽器的url地址仍然保留的是原頁面的地址!3 sever.execute 這個方法主要是用在頁面設計上面,而且他必須是跳轉同一站點下的頁面。這個方法是需要將一個頁面的輸出結果插入到另一個aspx頁面的時候使用,大部分是在表格中,將某一個頁面類似於嵌套的方式存在於另一頁面。
B. 如何實現網站根據訪問者的ip自動跳轉到相應地方區域
不知道你用的是什麼編程語言,給你貼個php的吧,網上有很多源碼可以自己找一下
<?php
//返回當前IP的城市字元串
function convertip($ip) {
//IP數據文件路徑
$dat_path = 'QQWry.Dat';
//檢查IP地址
if(!preg_match("/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/", $ip)) {
return 'IP Address Error';
}
//打開IP數據文件
if(!$fd = @fopen($dat_path, 'rb')){
return 'IP date file not exists or access denied';
}
//分解IP進行運算,得出整形數
$ip = explode('.', $ip);
$ipNum = $ip[0] * 16777216 + $ip[1] * 65536 + $ip[2] * 256 + $ip[3];
//獲取IP數據索引開始和結束位置
$DataBegin = fread($fd, 4);
$DataEnd = fread($fd, 4);
$ipbegin = implode('', unpack('L', $DataBegin));
if($ipbegin < 0) $ipbegin += pow(2, 32);
$ipend = implode('', unpack('L', $DataEnd));
if($ipend < 0) $ipend += pow(2, 32);
$ipAllNum = ($ipend - $ipbegin) / 7 + 1;
$BeginNum = 0;
$EndNum = $ipAllNum;
//使用二分查找法從索引記錄中搜索匹配的IP記錄
while($ip1num>$ipNum || $ip2num<$ipNum) {
$Middle= intval(($EndNum + $BeginNum) / 2);
//偏移指針到索引位置讀取4個位元組
fseek($fd, $ipbegin + 7 * $Middle);
$ipData1 = fread($fd, 4);
if(strlen($ipData1) < 4) {
fclose($fd);
return 'System Error';
}
//提取出來的數據轉換成長整形,如果數據是負數則加上2的32次冪
$ip1num = implode('', unpack('L', $ipData1));
if($ip1num < 0) $ip1num += pow(2, 32);
//提取的長整型數大於我們IP地址則修改結束位置進行下一次循環
if($ip1num > $ipNum) {
$EndNum = $Middle;
continue;
}
//取完上一個索引後取下一個索引
$DataSeek = fread($fd, 3);
if(strlen($DataSeek) < 3) {
fclose($fd);
return 'System Error';
}
$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
fseek($fd, $DataSeek);
$ipData2 = fread($fd, 4);
if(strlen($ipData2) < 4) {
fclose($fd);
return 'System Error';
}
$ip2num = implode('', unpack('L', $ipData2));
if($ip2num < 0) $ip2num += pow(2, 32);
//沒找到提示未知
if($ip2num < $ipNum) {
if($Middle == $BeginNum) {
fclose($fd);
return 'Unknown';
}
$BeginNum = $Middle;
}
}
$ipFlag = fread($fd, 1);
if($ipFlag == chr(1)) {
$ipSeek = fread($fd, 3);
if(strlen($ipSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipSeek = implode('', unpack('L', $ipSeek.chr(0)));
fseek($fd, $ipSeek);
$ipFlag = fread($fd, 1);
}
if($ipFlag == chr(2)) {
$AddrSeek = fread($fd, 3);
if(strlen($AddrSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}
while(($char = fread($fd, 1)) != chr(0))
$ipAddr2 .= $char;
$AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));
fseek($fd, $AddrSeek);
while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;
} else {
fseek($fd, -1, SEEK_CUR);
while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;
$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}
while(($char = fread($fd, 1)) != chr(0)){
$ipAddr2 .= $char;
}
}
fclose($fd);
//最後做相應的替換操作後返回結果
if(preg_match('/http/i', $ipAddr2)) {
$ipAddr2 = '';
}
$ipaddr = "$ipAddr1 $ipAddr2";
$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {
$ipaddr = 'Unknown';
}
return $ipaddr;
}
//查找字元串
function findstr($str, $substr)
{
$m = strlen($str);
$n = strlen($substr );
if ($m < $n) return false ;
for ($i=0; $i <=($m-$n+1); $i ++){
$sub = substr( $str, $i, $n);
if ( strcmp($sub, $substr) == 0) return true;
}
return false ;
}
?>
<?php
$Clientip=$_SERVER["REMOTE_ADDR"];
$ClientSity=convertip($Clientip);
if (findstr($ClientSity,"北京")){
//out.print("beijing");
Header("Location: http://www.qq.com");
}else{
//out.print("false beijing");
Header("Location: http://www.163.com");
}
?>
C. 項目: 多個網站訪問時被跳轉到指定IP
1.hosts文件裡面
2.IP地址及域名 手動刪除後保存一下hosts文件
3.好了重啟一下電腦再試
4.如果重啟好之後還是這樣就用殺毒軟體殺一下毒
D. 如何在伺服器中設置識別IP地址進行不同跳轉頁面
貌似只能以提供的運營商進行區分,比如聯通進第一個,電信進第2個
E. 如何實現本機軟體訪問的IP轉移到另外的IP
自己做個代理不就OK了,
自己搭建個HTTP代理,然後做轉發,如果截取到目標IP就做轉發,否則直接直接走本地,
HTTP代理用過吧,可以根據網址或者IP來做策略(就是引流),能把流量引到你自己的伺服器之後其他的就好說了
HTTP代理插件需要安裝到軟體使用者的電腦上,相關http代理插件網上有
F. 如何設置電腦訪問特定IP地址時,交換機自動跳轉到指定路由器,並且訪問
一般來說,路由器的DHCP都是默認打開的,是可以自動獲取ip的。
如果說想設置成靜態的,路由器的網關一般默認是192.168.0.1或192.168.1.1,也就是路由器的ip地址,當然也可以自己設置。
你可以把電腦的ip設為192.168.0.2至192.168.0.254或192.168.1.2至192.168.1.254的任意一個,不過網內不要有相同的,否則會有ip地址沖突。
子網掩碼:255.255.255.0
網關:192.168.0.1或192.168.1.1,也就是路由器的ip地址
DNS伺服器:192.168.0.1或192.168.1.1,也就是路由器的ip地址。
一個字一個字打的,絕對原創,很辛苦的。希望能幫到你。
G. 如何設置並實現:訪問一個IP跳轉到另一個IP
就是做跳轉,那你可以在路由器或防火牆上做這個設置。比如可以設置,訪問網路的時候,自動跳其它網站。