웹모아
웹모아[손님] 검색   로그인    


 
일반팁
 


fsockopen을 이용한 웹 접속 [1]
  2008-04-25 14:56:31 댓글:(0)   조회:3238



1. fsockopen?

 

PHP에서 fsockopen() 함수는 TCP/UCP 소켓 연결을 가능하게 합니다.

저는 여태껏 웹(HTTP,WWW)만을 대상으로 사용했으나 다른 용도로

혹은 다른 프로토콜로도 접속할수 있을것입니다.

 

fopen()은 단순한 파일이나 URL로 연결 가능하지만 한계가 있습니다.

막연히 한계?라고 하기는 애매한데...

fopen()이 단순한 웹 페이지를 읽어 들이는데 사용된다면

fsockopen()은 유저가 링크를 클릭하고 웹 서핑하듯이 사용할수

있다고 생각하시면 됩니다.

 

fsockopen() 으로는..

로그인이 필요한 곳에서 로그인을 할수 있습니다.

파일을 업로드 하거나 게시판에 글을 쓸수 있습니다.

메일을 보낼수도 있고...

해당 서버에 정상 적으로 접속이 되었는지 헤더를 통해 확인할수 있습니다.

(얘길 하고보니 당연히 할수 있는 것들이네요)

 

물론 웹 이라는 전제가 없다면 훨씬 더 다양하게 사용할수 있습니다

fopen()으로 이런 기능을 구현할수 없을까? 라고 한다면

fsockopen()으로 해결이 가능할 것입니다.

 

 

 

2. 사전 지식.

 

깊이 파고 들자면 상당히 피곤해 지고.. 적당히 알아둬야 할것들이

있습니다.

 

* HTTP(Hypertext Transfer Protocol)

 - fsockopen 으로 웹 접속시에 HTTP 헤더가 사용됩니다.

 - 각각 사용되는 헤더들이 어떤 뜻인지라도 파악하면 피 와 살이 될것입니다.

 - RFC-2068 HTTP1.1 을 참고하세요.

 

* 파일 관련 함수

 - fputs 또는 fwrite , fgets 또는 fread , feof, fclose...

 

* 정규표현식

 - 웹 페이지를 읽어 들일때 꼭 필요한 부분만 쓰고자 할때 사용합니다.

 - 문자열 관련함수로도 가능합니다만 심플하고 한번에 해결할수 있는

    정규표현식이 상당히 도움이 됩니다.

 - 접속시에 생성되는 쿠키를 읽어들일 때에도 사용합니다.

 

 

 

3. 그밖에...

 

사실 PHP 메뉴얼에 나온 fsockopen 부분을 보면 여기서 더 이상 다룰

내용이 없을 정도로 많은 소스들이 올라와 있습니다.

 

그중에는 폼을 통한 전송(글쓰기) , 파일업로드, 메일 전송,

WHOIS 조회, 쿠키와 리퍼러/헤더의 사용 까지 나와 있습니다.

 

하지만 충분히 숙달된... 혹은 메뉴얼을 보는 습관이 없는 프로그래머라면

소스를 보더라도 응용에는 상당한 삽질이 필요할수 있습니다.(저 처럼..)

 

그렇기에 이런 내용을 다루려고 생각한 것이고...

일단 응용을 해보면 아주 재미 있는(?) 일들까지 할수 있는걸 알수 있습니다.

 




 댓글 (0)


일반팁
페이지: 1 / 4   


   중복 글등록을 방지하는 간단한 팁3843
   이전 페이지 돌아가기 예제소스 코드보기1248
   현재페이지 파일명 구하기3994
   반응형 웹에서 발생할 수 있는 시각적 요소의 크기 4158
   php 한글(UTF-8) 자르기2395
   php header를 utf-8 로 바꾸기2317
   게시판에 파일 첨부 갯수가 20개로 제한되는 경우 2696
   영문 대소문자 변환2774
   mime_type 알기2702
   MIME Type이란20741
     Microsoft 제품군 관련 MIME Type 목2725
   헤더(header) 정리4249
   이미지 태그에서 주소를 php 문으로 나타내기2685
   php mysql 연동 날짜 계산 mktime da3721
   PHP로 소켓 서버 작성하기6407
   fsockopen을 이용한 서버 동작 체크3073
fsockopen을 이용한 웹 접속 [1]3239
   단어링크2754
   php, 전체경로 include2975
   urlencode 와 rawurlencode 의3457
   배열로 넘어온 변수를 for문으로 배열에 넣기3453
   class 사용법 질문입니다...2715
   중복 배열의 값과 중복회수 체크3256
   한글 유니코드 표(홈마스타)3377
   사용된 모든 변수 내역 확인(홈마스타)3084
   include & include_once & req(홈마스타)2966
   절대경로와 상대경로를 아는 방법(홈마스타)3304
   현재 파일이 실행되고 있는 최종 디렉토리 구하기(홈마스타)3187
   2차원 배열 - 출력하기(홈마스타)(1) 3206
     [RE] 쿼리결과 2차원 배열로 저장하기(홈마스타)4103
≪ [1]  [2]  [3]  [4]   ≫

복수단어 검색은 공백(space)로 구분해 주세요.



 
최근 글
[손님]
117
99
253
471
1034
403
464
259
384
3843
931
1004
1248
991
4296
 
인기 글
[손님]
3556
10693
5150
5737
5065
3215
3073
[홈마스타] setinterval 사용과 중지
5621
3799
3442
4392
4649
3239
3393
7172