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


 
일반팁
 


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



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   


     중복 글등록을 방지하는 간단한 팁3807
     이전 페이지 돌아가기 예제소스 코드보기1199
     현재페이지 파일명 구하기3984
     반응형 웹에서 발생할 수 있는 시각적 요소의 크기 4142
     php 한글(UTF-8) 자르기2374
     php header를 utf-8 로 바꾸기2240
     게시판에 파일 첨부 갯수가 20개로 제한되는 경우 2647
     영문 대소문자 변환2763
     mime_type 알기2700
     MIME Type이란20716
       Microsoft 제품군 관련 MIME Type 목2720
     헤더(header) 정리4158
     이미지 태그에서 주소를 php 문으로 나타내기2629
     php mysql 연동 날짜 계산 mktime da3700
     PHP로 소켓 서버 작성하기5371
     fsockopen을 이용한 서버 동작 체크3067
  fsockopen을 이용한 웹 접속 [1]3173
     단어링크2752
     php, 전체경로 include2963
     urlencode 와 rawurlencode 의3449
     배열로 넘어온 변수를 for문으로 배열에 넣기3443
     class 사용법 질문입니다...2713
     중복 배열의 값과 중복회수 체크3238
     한글 유니코드 표(홈마스타)3353
     사용된 모든 변수 내역 확인(홈마스타)3080
     include & include_once & req(홈마스타)2958
     절대경로와 상대경로를 아는 방법(홈마스타)3296
     현재 파일이 실행되고 있는 최종 디렉토리 구하기(홈마스타)3165
     2차원 배열 - 출력하기(홈마스타)(1) 3164
       [RE] 쿼리결과 2차원 배열로 저장하기(홈마스타)4095
≪ [1]  [2]  [3]  [4]   ≫

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



 
최근 글
[손님]
84
75
229
376
621
374
415
239
358
3807
911
954
1199
974
4266
 
인기 글
[손님]
10478
3592
3383
4381
3612
3187
  [홈마스타] php 한글체크문제
3272
3390
3296
3621
3202
3284
3706
5235
5316