PHP Scripting-PHP Script 예제 code

여기에서는 간단한 예제를 보여 드리겠습니다~

1) whois 검색
whois 검색이라는 것은 어떤 도메인이 등록이 되어 있는지 등록되어있지 않은지를 확인하고 만약 등록되어 있다면
누구에게 등록이 되어 있는지를 검색하는 것을 뜻한다는 것은.. 다들 아실것입니다.
여기의 Code는 단순히 최상위도메인을 .kr이나 아니면 국제 도메인으로만 나누고있습니다.
일반적으로 Whois 검색은 kr 도메인의 경우엔 whois.nic.or.kr , 국제 도메인은 whois.networksolutions.com에서 하고 43번 표준 Port에서 whois서비스가 이루어 집니다.


-------------whois.php--------------------------------------------------
#!/usr/local/bin/php -q
//인자의 개수가 명령어 , 찾을 도메인 .. 이렇게 해서 두개가 되어야 합니다.
if($argc < 2)
die("사용법 : whois.php domain
");

//도메인 검색할때는 도메인과 최상위 도메인만을 적어야 합니다.
if(eregi("^http://" , $domain) || eregi("^www" , $domain))
die("사용법 : http 나 www 는 제외하고 써 주세요
");

$domain = $argv[1];
$port = 43;

//도메인을 . 으로 나누는것은 도메인과 최상위 도메인을 구분하기 위한 것입니다.
$tl = explode("." , $domain);
$tl_count = count($tl);

//일반적으로 도메인은 domain.com 이나 domain.co.kr의 형태입니다.
if($tl_count < 2 || $tl_count > 3)
die("에러 : 잘못된 도메인 입니다
");

//. 이 두개이면 .com이나 .org의 형태이고 세개이면 .co.kr이나 .or.kr의 형태이므로
//두개이면 국제도메인 , 세개이면 국내 도메인입니다.
if($tl_count == 2)
$hostname = "whois.networksolutions.com";
else if($tl[2] == "kr")
$hostname = "whois.nic.or.kr";
else
die("국제 도메인과 kr 도메인만 검색 가능합니다
");

//지정한 Host의 43번 Port로 Socket을 엽니다
$fp = fsockopen($hostname , 43);

if(!$fp)
die("$hostname 의 $port 번 Port에 접속할 수 없습니다
");

$domain .= "
";

//검색하고자 하는 Domain을 전송합니다.
fwrite($fp , $domain);

//결과를 읽어와서 화면에 출력합니다.
while(!feof($fp)){
echo fgets($fp , 128);
}

//열려진 Socket을 닫습니다.
fclose($fp);
?>
-----------------------------------------------------------------------




2) sms
sms라는 것은 휴대폰으로 간단한 메시지(문자)를 보내는 것을 말하고 여기에서는 019로 문자 메시지를 보내는 것을 구현 하고 있습니다.
이것은 단순히 http://www.lg019.co.kr 에 있는 CGI를 불러오는 것으로서 문자메시지를 전송하게 됩니다.

(참고)
이 SMS는 019휴대폰으로만 메시지 전송이 가능한데 기타 다른 이동통신 서비와는 달리 019는 휴대폰 가입자가 이에대한 요금을 지불 (월정액 2000원)하고 메시지를 보내는 사람은 무료로 메시지를 보내도록 하고 있기때문에 구현하기가 쉬워집니다.
기타 다른 이동통신 서비스로 문자메시지를 보낼경우엔 웹에 Login을 해야 하기 때문에 이에대한 Cookie를 구현해야 합니다.



-------------sms.php--------------------------------------------------
#!/usr/local/bin/php -q
//명령어를 포함하여 필요한 인자는 모두 7개 입니다.
if($argc < 7)
die("sms.php 받는사람번호 보내는사람이름 연락받을번호1 연락받을번호2 연락받을번호3 내용
");

$number = eregi_replace(" " , "+" , $argv[1]);
$sender = eregi_replace(" " , "+" , $argv[2]);
$resp1 = eregi_replace(" " , "+" , $argv[3]);
$resp2 = eregi_replace(" " , "+" , $argv[4]);
$resp3 = eregi_replace(" " , "+" , $argv[5]);
$mesg = eregi_replace(" " , "+" , $argv[6]);

//70 Byte이상은 받지 않더군여~
if(strlen($mesg) > 70)
die("한글은 35자 영문은 70자 이하로 써 주셔여~
");

$remote_host = "http://www.lg019.co.kr/message/onesend.cgi?";
$remote_host.= "number=$number&sender=$sender&resp_number1=$resp1&";
$remote_host.= "resp_number2=$resp2&resp_number3=$resp3&message=$mesg";

$fp = fopen($remote_host , "r");

if(!$fp)
die("전송 실패
");
else{
echo "019$number 로 메시지를 전송하였습니다
";
fclose($fp);
}
?>
--------------------------------------------------------------------




※ 참고
저는 이것을 서버관리할때 PortSentry의 명령어로 사용했습니다. 그러니까.. 누군가 제 서버에 PortScan을 하면 바로 제 휴대폰으로 문자 메시지가 날라오게 해놨었져~ ㅋㅋㅋㅋㅋ

※ 주의사항
sms에서 한가지 주의할 점은 PortSentry의 오동작입니다. 정상적으로 Web으로 접속하는 사용자도 PortScan으로 감지하는 경우가 있더군여~ 이케 되면 평생받을 문자를 하루만에 다 받게 됩니다...
저는 이때 아마 세 보지는 않았지만 2000개 정도의 문자를 받았답니다.. 이거 주금입니다.. ㅋㅋ
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/04/01 18:54 2004/04/01 18:54
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/194

PHP Scripting-PHP Script의 개요및 설치

PHP Script의 개요및 설치


--------------------------------------------------------------------------------


일반적으로 PHP는 Apache와 같은 Web Server의 Module형태로 설치하여 사용하는 것이 일반적이며 또한 PHP의 대부분의 기능이 Web Application을 작성하도록 설계되어 있습니다.

하지만 PHP는 Perl과 같은 Script언어로 작동을 할 수있도록 만들어져 있습니다.

이것은 PHP가 어떤 특정 Web Server의 Module형태가 아닌 CGI로써 실행 되도록 설계된 것이며 Shell상에서 작동하는 Script형태로 작성이 가능합니다.

PHP로 Script를 작성했을때 Web Applicatoin을 작성할 때의 모든 함수들과 기능을 모두 사용할 수 있습니다.

여기에서는 PHP를 Perl과 같은 Script언어로 사용하는 방식에 대해 이야기를 할 것입니다.


PHP를 CGI방식으로 설치하기

PHP를 CGI방식으로 설치하는 것은 일반적은 PHP의 설치 방식을 따릅니다. 다만 PHP가 Apache의 Module형태로 설치되는 것이 아니기 때문에 Configure 에서 --with-apache라는 Option이 빠지게 됩니다

1) Download
http://www.php.net/downloads.php 나 linux.co.kr의 다운로드 코너에서 PHP의 Source를 Download 받아서 적당한 Directory(예를 들어 /usr/local/src/)에 압축을 풉니다

2) 설치환경 설정
1)에서 Download받고 압축을 풀어 놓은 Directory에서 configure Script를 실행 시킵니다.



[root@localhost php-4.0.6]# ./configure




PHP를 Apache의 Module로 설치할 때는 다음과 같습니다.



[root@localhost php-4.0.6]# ./configure --with-apache=/usr/local/src/apache_1.3.xx --disable-debug --enable-track-vars




즉 Apache의 Module형태로 설치할때의 Option인 --with-apache와 Zend 제품군을 사용하기위한 --disable-debug 그리고 --enable-track-vars가 빠진 형태가 됩니다.

만약 PHP Script를 이용하여 MySQL을 사용하고자 할 때에는



[root@localhost php-4.0.6]# ./configure --with-mysql=Where_MySQL_Installed_Directory




와 같이 적어 주시면 됩니다.

기타 다른 기능들을 추가로 사용하고자 하시면



[root@localhost php-4.0.6]# ./configure --help




를 참고 하여 --with --enable등의 Option을 사용하시면 됩니다.

PHP를 CGI Mode로 설치하게 되면 Apache의 Module로 설치 할때와 달리 configure의 결과에 다음과 같은 내용이 추가 됩니다.



+---------------------------------------------------------------------------------------------+
| *** WARNING *** |
| |
| You will be compiling the CGI version of PHP without any |
| redirection checking. By putting this cgi binary somewhere in |
| your web space, users may be able to circumvent existing .htaccess|
| security by loading files directly through the parser. See |
| http://www.php.net/manual/security.php for more details. |
+---------------------------------------------------------------------------------------------+




3) Compile및 설치



[root@localhost php-4.0.6]# make
[root@localhost php-4.0.6]# make install




을 하시면 Compile 하고 설치가 되는데 여기에서 기본적으로 설치되는 Directory는
/usr/local 이 됩니다. 즉

/usr/local/bin : 실행 파일들.
/usr/local/lib : Library들
/usr/local/include : Include 파일들

위의 Directory에 각각 설치가 됩니다.
만약 특정 Directory에 설치하기 위해서는 configure에 --prefix Option을
추가하시면 됩니다. 예를 들어 PHP를 /usr/local/php에 설치하려면



[root@localhost php-4.0.6]# ./configure --prefix=/usr/local/php




와 같이 하면 됩니다.


크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/04/01 18:52 2004/04/01 18:52
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/193

세월이 거듭될수록
\'사람이 하루아침에 만들어지는 것이
아니다.\' 는 생각을 하게 된다. 그만큼
잘 다듬어진 사람을 만나는 것이
귀하기 때문이리라.



- 장성숙의《무엇이 사람보다 소중하리》중에서 -



* 어느 시인은 \'사람만이 희망이다\'고 노래했습니다.
맞습니다. 사람이 희망이며, 잘 다듬어진 사람은
더 큰 희망입니다. 사람은 하늘이 내리지만,
잘 다듬어진 사람은 세월과 더불어
함께 만들어가는 것입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/04/01 09:02 2004/04/01 09:02
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/613


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2004/04   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
Statistics Graph

Site Stats

Total hits:
187727
Today:
527
Yesterday:
669