2010-06-05 1 views
1

오픈 프록시 서버 용 포트를 검색하는 스크립트가 있습니다. 문제는 로그인 프로그램 (특히 텔넷)을 만났을 때 무엇을해야할지 모르기 때문에 영원히 멈추고 결국 서버가 연결을 닫는 것입니다.입력이 필요한 서버에 설정된 소켓이 꽂혀 있는지 어떻게 알 수 있습니까?

간단한 해결책은 많은 경우를 만드는 것입니다. 텔넷이면 이렇게하십시오. SSH라면, 그렇게 해. 뭔가 다른 것이 있다면, 어쩌구 저쩌구. 스크립트는 나에게 최우선 순위가 아니기 때문에 우산 솔루션을 원합니다. 그것은 지금처럼

스크립트는 작은 규모에 http://parkrrr.net/socks/scan.phps

에서 확인할 수 있습니다 (페이지 어쩌면 평균 15 안타/일)은 괜찮아요하지만 큰 규모 내가 많이 신경이 쓰이는 것 열린 좀비 소켓.

서버가 요청한 것보다 더 많은 정보 (예 : 헤더, 광고 등)를 반환 할 수 있으므로! $ strpos를 바꿔 치기가 작동하지 않습니다.

$ fgets에서 고정 된 수의 바이트 만 받아들이는 것만으로는 작동하지 않습니다. 나는 이것이 붙어있는 곳이라고 확신한다 : while (! feof ($ fp)) { $ data. = fgets ($ fp, 512); }

하지만 어떻게해야합니까? 다른 모든 제안/경고도 환영합니다.

답변

1

stream_set_timeout을 사용하여 소켓에서 읽기/쓰기 시간 초과를 설정하십시오.

관련 문제