웹모아
웹모아[손님] 검색   로그인 / 회원가입    



 
일반팁
 


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




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   


   중복 글등록을 방지하는 간단한 팁 5409
   이전 페이지 돌아가기 예제소스 코드보기 1622
   현재페이지 파일명 구하기 4250
   반응형 웹에서 발생할 수 있는 시각적 요소의 크기 4807
   php 한글(UTF-8) 자르기 3054
   php header를 utf-8 로 바꾸기 2625
   게시판에 파일 첨부 갯수가 20개로 제한되는 경우 2842
   영문 대소문자 변환 2928
   mime_type 알기 2829
   MIME Type이란 21193
     Microsoft 제품군 관련 MIME Type 목 2861
   헤더(header) 정리 4428
   이미지 태그에서 주소를 php 문으로 나타내기 2815
   php mysql 연동 날짜 계산 mktime da 3874
   PHP로 소켓 서버 작성하기 7020
   fsockopen을 이용한 서버 동작 체크 3220
fsockopen을 이용한 웹 접속 [1] 3434
   단어링크 2894
   php, 전체경로 include 3123
   urlencode 와 rawurlencode 의 3608
   배열로 넘어온 변수를 for문으로 배열에 넣기 3605
   class 사용법 질문입니다... 2843
   중복 배열의 값과 중복회수 체크 3495
   한글 유니코드 표(홈마스타) 3538
   사용된 모든 변수 내역 확인(홈마스타) 3229
   include & include_once & req(홈마스타) 3124
   절대경로와 상대경로를 아는 방법(홈마스타) 3440
   현재 파일이 실행되고 있는 최종 디렉토리 구하기(홈마스타) 3332
   2차원 배열 - 출력하기(홈마스타)(1) 3363
     [RE] 쿼리결과 2차원 배열로 저장하기(홈마스타) 4257
[1]  [2]  [3]  [4]  

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



 
최근 글
[손님]

인기 글
[손님]
[홈마스타] 운전면허 취득절차