|
|
|
| Есть webserver, который работает на компьютере в локальной сети, но при обращении на этот компьютер из Iternet (через NAT) запускается скрипт, в котором передается внутрений IP адрес и порт (типа 192.168.0.9), соответственно ничего не работает. Есть ли возможность доработать этот скрипт таким образом, что при обращении с локальной сети (диапазон IP 192.168.0.XXX) передавался бы внутренний IP (192.168.0.9), а при обращении из Internet подставлялся бы внешний адрес роутера (62.XX.XX.XX)? Сам я в PHP совсем ни как, разве что нашел почему не работает запрос. А вот кусочек оригинального скрипта:
$CAMS=array();
for ($i=0;$i<$wins_nr;$i++)
{
$tmp=array();
if (empty($cams[$i])) {
$tmp['set']=0;
} else {
if (!preg_match("/^cam (\d*) on (\d*\.\d*\.\d*\.\d*):(\d+) \[(\d+)x(\d+)\]/i",
$cams[$i], $matches) )
MYDIE("preg_match($cams[$i]) failed",__FILE__,__LINE__);
$cam_nr = $matches[1];settype($cam_nr,'int');
$_sip = $matches[2];
$w_port = $matches[3];settype($w_port,'int');
$_ww=$matches[4]; settype($_ww,'int');
$_wh=$matches[5]; settype($_wh,'int');
$tmp['set']=1;
$tmp['cam_nr']=$cam_nr;
$tmp['ip']=$_sip;
$tmp['port']=$w_port;
$tmp['orig_w']=$_ww;
$tmp['orig_h']=$_wh;
}
$tmpstr=implode('=',$tmp);
print 'WINS['.$i.']="'.$tmpstr.'";'."\n";
$CAMS[$i] = $tmp;
}
$cnames_nr = count($camnames);
if ($cnames_nr>0) {
print 'var CNAMES = new MakeArray('.$cnames_nr.')'."\n";
for ($i=0;$i<$cnames_nr;$i++)
print 'CNAMES['.$i.']="'.$camnames[$i].'";'."\n";
} | |
|
|
|
|
|
|
|
для: nightcat
(22.12.2006 в 18:37)
| | >котором передается внутрений IP адрес и порт (типа 192.168.0.9), соответственно ничего не
>работает.
Передаётся куда? | |
|
|
|
|
|
|
|
для: cheops
(23.12.2006 в 12:55)
| | Передает похоже в этом кусочке:
var help_win=null;
var win_info;
var cam_nr;
var ip;
var port;
var orig_w;
var orig_h;
var url;
function parse_win_info(wininfo) {
win_info = wininfo.split('=');
cam_nr = parseInt(win_info[1]);
ip = win_info[2];
port = parseInt(win_info[3]);
orig_w = parseInt(win_info[4]);
orig_h = parseInt(win_info[5]);
url = 'http://'+ip+':'+ port;
} | |
|
|
|