>> Delete Reply from No. 24500 article
No. RE: (질문)ADSL 하는데 IP 변경시 메일로 통보..

등록 2001-03-20 21:52:00 By localhost     조회 2
이름 ###    

		유동IP에 서브도메인을 연결해주는 서비스가 제일 간단할 것 같군요.
  아니면... 좀 복잡하긴 해도 다음 방법을 한번 써보시기 바랍니다.
  유동IP가 물린 리눅스에 다음 파일을 저장하여 실행권한을
부여(chmod +x /root/bin/ipch)한 후,
 #---------- /root/bin/ipch ----------#
#!/usr/bin/perl
use Socket;
$u = ParseURL($ARGV[0]);
Query($u{'proto'}, $u{'server'}, $u{'port'}, $u{'path'});
sub Query {
        my ($proto, $server, $port, $request) = @_;
        my $result; my $r = "
";
        socket(SOCK, PF_INET, SOCK_STREAM, 6) || return 0;
        my $sin = sockaddr_in($port, inet_aton($server));
        connect(SOCK, $sin) || return 0;
        my ($old) = select(SOCK); $|=1; select($old);
        print SOCK "GET $proto$server:$port$request HTTP/1.0$r$r";
        while(<SOCK>) { $result .= $_; }
        close(SOCK);
        return $result;
}
sub ParseURL {
        my $url = shift; my $u;
        ($u{'proto'}, $u{'server'}, $u{'port'}, $u{'path'}) =
        ($url =~ /^([^:]+://)([0-9a-zA-Z-.]+)(:[0-9]+)?(.*)$/);
        if ($u{'port'} ne "") { $u{'port'} =~ s/^://; }
        else { $u{'port'} = 80; }
        if ($u{'path'} eq "") { $u{'path'} = "/"; }
        return \%u;
}
   다음에서 설명할 PHP 프로그램에 update=1 이라는 인자를 붙인 후
cron에 등록해 둡니다.  다음 예는 5분에 한번씩 실행토록 한 것입니다.
#---------- /etc/crontab ----------#
*/5 * * * * root /root/bin/ipch http://도메인/경로/ipch.php?update=1
   그리고 나서 PHP가 지원되는 서버에 다음과 같은 PHP 프로그램을 올려둡니
다.
#---------- http://도메인/경로/ipch.php ----------#
<?
$mail = "myid at domain.ext";  // 메일을 수신할 주소
$cache = "/tmp/ip.cache";    // IP를 저장할 파일명
 Header("Content-type: text/plain");
$new_ip = $REMOTE_ADDR;
if (file_exists($cache)) {
        $fp = fopen($cache, "r");
                $old_ip = fread($fp, filesize($cache));
        fclose($fp);
}
if ($update && ($new_ip != $old_ip)) {
        $fp = fopen($cache, "w");
                fputs($fp, $new_ip);
        fclose($fp);
        // 메일 송신 부분
        $subject = "IP Change : $old_ip -> $new_ip";
        $content = $subject;
        mail($mail, $subject, $content);
        print $new_ip;
}
else { print $old_ip; }
?>
   이제 집에 있는 컴퓨터의 IP를 알고 싶다면 브라우져로
http://도메인/경로/ipch.php를 접속해보면 되겠고,
텔렛으로 바로 접속하고자 한다면 다음과 같이 하는게 좋겠지요.
 $ telnet `lynx -source http://도메인/경로/ipch.php`
(ESC 키 바로 밑에 있는 ` 기호입니다.)
 자주 쓰신다면 이 또한 alias를 걸어두시길...
     :  한국통신ADSL 을 사용하고 있는데요.. 음.. 집에서 PC를 켜두고 회사에서
:
:  접속을 할려믄.. 꼭 IP를 까먹어가지구.. 접속을 못하거든요..
:
:  유동IP다보니.. 아이피바뀔때마다.. 외우기도 힘들고..
:
:  IP가 바뀔때마다.. 바뀐 IP 주소와함께 메일로 통보를 받을수
:
:  있는 방법이 있던데.. 어떻게 하죠!!
:
:   여기 질문답변에 있다고도 하는데.. 어딨는지 모르겠어용..
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved