소켓 POST로 쿼리보내기,(방향만이라도 잡아주십시요ㅠㅠ)

promise1001의 이미지

안녕하세요? 소켓을 공부하는 학생입니다. 실력이 모자라 매번 질문만 하고 있네요. 제가 할려고 하는 것은

post방식으로 서버에 쿼리를 보내서 reply를 보고 처리를 하는것입니다.

구체적으론 www.missed-call.com 이란곳에 스팸전화번호를 하나 보내서 스팸이라는 메세지를 하나 받는것이 목표입니다.

메세지를 살펴보기 위해 wpe프로그램으로 지나가는 패킷을 잡아보니 다음과 같았습니다. 문제는 이것과 똑

같은 메세지를 보내면 해결될줄 알았는데, 패킷의 구조를 잘몰라 쉽게 해결되지가 않네요. 계속 400번 잘못

된 요청이라는 메세지만 날라옵니다.

소켓으로 무슨 메세지를 보내야 하는지 알려주심 정말 감사하겠습니다. //클라이언트가 두번 메세지를 보냅

니다.

//브라우져가 서버로 보낸 첫번째 메시지

POST /nark.php HTTP/1.1\nHost: www.missed-call.com\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\nAccept: text/javascript, text/html, application/xml, text/xml, */*\nAccept-Language: ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3\nAccept-Encoding: gzip,deflate\nAccept-Charset: EUC-KR,utf-8;q=0.7,*;q=0.7\nKeep-Alive: 300\nConnection: keep-alive\nX-Requested-With: XMLHttpRequest\nX-Prototype-Version: 1.5.1\nContent-Type: application/x-www-form-urlencoded; charset=UTF-8\nReferer: http://www.missed-call.com/\nContent-Length: 155\nCookie: __utma=81495947.1571846267.1217770459.1217770459.1217770459.1; __utmb=81495947; __utmc=81495947; __utmz=81495947.1217770459.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)\nPragma: no-cache\nCache-Control: no-cache\n\ncmd=QUERY&data=%7B%22pnum%22%3A%20%22031-1938-1831%22%7D&Stamp=6f1716767a7c1c687967517c7b62641a751b75757f301214505d1e6d0d117167731e&rand=0.8696626671274652

//브라우져가 서버로 보낸 두번째 메시지

GET /spinner48.gif HTTP/1.1\nHost: www.missed-call.com\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1\nAccept: image/png,image/*;q=0.8,*/*;q=0.5\nAccept-Language: ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3\nAccept-Encoding: gzip,deflate\nAccept-Charset: EUC-KR,utf-8;q=0.7,*;q=0.7\nKeep-Alive: 300\nConnection: keep-alive\nReferer: http://www.missed-call.com/\nCookie: __utma=81495947.1571846267.1217770459.1217770459.1217770459.1; __utmb=81495947; __utmc=81495947; __utmz=81495947.1217770459.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)\n\n

//첫번째 받는 메시지

HTTP/1.1 200 OK\nDate: Sun, 03 Aug 2008 06:57:43 GMT\nServer: Apache/2.2.8 (Unix) DAV/2 PHP/5.2.5\nLast-Modified: Sat, 03 May 2008 10:15:15 GMT\nETag: "1da540-28d5-44c50c64ef2c0"\nAccept-Ranges: bytes\nContent-Length: 10453\nKeep-Alive: timeout=5, max=100\nConnection: Keep-Alive\nContent-Type: image/gif\n\n

brucewang의 이미지

클라이언트의 두번째 리퀘스트는 무시해도 될 것 같고
첫번째 POST에서
"ncmd=QUERY&data=%7B%22pnum%22%3A%20%22031-1938-1831%22%7D&Stamp=6f1716767a7c1c687967517c7b62641a751b75757f301214505d1e6d0d117167731e&rand=0.8696626671274652"

의 'pnum', 'Stamp', 'rand' 값만 잘 맞추어 보내면 될것 같은데요..

'pnum'이야 전화번호겠고,

'Stamp', 'rand' 이 값들이 매번 변동되는 값인것 같네요.
이 값들의 규칙만 알아내시면 될것 같은데... 아마 클라이언트 스크립트를
보시면 뭔가 나오지 않을까요?

-------------------------------------------------
$yes 4 8 15 16 23 42

cppig1995의 이미지

\n이 아니라 \r\n으로 한 줄이 끝날 겁니다.
--
임수서룬뫼 윤희수 {cppig1995/돼지군}

Real programmers /* don't */ comment their code.
If it was hard to write, it should be /* hard to */ read.

7339989b62a014c4ce6e31b3540bc7b5f06455024f22753f6235c935e8e5의 이미지

그냥 HTTP 요청 보내고 받는 거라면 굳이 소켓을 직접 쓸 필요는 없습니다.
libcurl을 써보세요.
http://curl.haxx.se/

promise1001의 이미지

잠시 나갔다 온 사이 이렇게 많은 댓글이..ㅠㅠ

가르쳐 주신대로 하나씩 해보고 글남기 겠습니다.

감사합니다.

shamlock의 이미지

java HttpClient 라이브러리를 사용하면 10줄안에 답이 나옵니다

HttpClient는 jakarta 프로젝트입니다.

@.@

세이군의 이미지

결과라고 올려주신게 뭔가 빠져있네요.
첫번째 응답이라고 올려주신 부분은 서버로 보낸 두번째 메시지의 응답입니다.

첫번째 서버로 보낸 메시지의 분석
----------------
POST /nark.php HTTP/1.1
Host: www.missed-call.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ko; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
Accept: text/javascript, text/html, application/xml, text/xml, */*
Accept-Language: ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: EUC-KR,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
X-Requested-With: XMLHttpRequest
nX-Prototype-Version: 1.5.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://www.missed-call.com/
Content-Length: 155
Cookie: __utma=81495947.1571846267.1217770459.1217770459.1217770459.1; __utmb=81495947; __utmc=81495947; __utmz=81495947.1217770459.1.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
Pragma: no-cache
Cache-Control: no-cache

cmd=QUERY&data=%7B%22pnum%22%3A%20%22031-1938-1831%22%7D&Stamp=6f1716767a7c1c687967517c7b62641a751b75757f301214505d1e6d0d117167731e&rand=0.8696626671274652
----------------------------------
보내지는 변수들은 cmd, data, stamp, rand 이렇게 4개입니다.

data에 들어가는 값은 이렇네요.
data={"pnum": "031-1938-1831"}
stamp변수는 본 페이지에 적혀 있고 rand는 어딘가에서 만들어내는 듯 합니다.

Kita의 이미지

안녕하세요?

우선 missed-call에 관심을 가져주신 promise1001님께 감사드립니다.

Stamp라는 변수가 인증 토큰으로, 이 내용이 어딘가 잘못되어있으면 404를 보내도록 되어있습니다.
Stamp의 구체적인 내용을 말씀드리지 못하는 점 이해 부탁드립니다.

이때문에 소켓으로 스팸번호를 쿼리하는 시도는 비추합니다....
대신 추후 API 공개를 고려하고 있습니다.
그 때, 베타 테스트를 부탁드리는 쪽이 좋을 것 같습니다.

그럼 즐거운 하루 되시기 바랍니다.

스팸번호 검색 missed-call.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.