Auto reservation program using from wget and bat - Engineer of NiagaraFramework

Tridium, NiagaraFramework, SCADA, HMI, PLC, Automation, SmartFAM etc.. About controls.
나이아가라 프레임워크 QnA : neverlikekami@gmail.com

2019년 4월 17일 수요일

Auto reservation program using from wget and bat

개요
본 내용은 특정 홈페이지의 자동예약을 위해 사용했던 방법이다.
해당 사이트의 보안이나 법적인 문제가 될 수 있으므로 간접적으로 설명해보려한다.

많은 웹 사이트들은 웹 페이지를 통하여 예매나 예약등을 선착순으로 진행하곤 한다.
그런만큼 많은 매크로프로그램들이 돌아다니는것도 사실이다.

1차원적으로 자동으로 마우스로 클릭->새로고침->클릭->새로고침...->반복의 방법을 사용하였으나 지금시대에 그런 방법은 경쟁력이 떨어진다.
2000년경에는 마우스 자동클릭만으로 여러 예약을 손쉽게 했던 경험이 있다.
하지만 2020년이 코앞인 지금은 사정이 많이 다르다.

예매가 매크로전쟁으로 번진만큼 프로그램의 퍼포먼스에따라 예매가 되고 안되고가 확연히 갈린다.


<매크로 전쟁>

본인은 심플하게 wget과 bat파일을 이용하여 로그인 및 예약을 진행하는 매크로를 작성하였고 타겟 사이트에서 잘 동작하는것을 확인하였다.


How to active their website

가장 중요한것은 먼저 타겟이 되는 웹 사이트가 어떤식으로 동작하는지 파학하는것이다.
어떤 페이지의 흐름을 타고 인증을 하는지. 어떤 변수들이 사용되었는지. 서버 시간은 어떠한지 등등.. 서버에대한 정보를 얻어야한다.

이러한 정보를 얻는 방법들은 너무나 방대하고 언어를 알고있어야한다...
설명하기가 난해하니 추후 다시 정리할것이다.


How to log in and reservation a website using wget

먼저 wget이 대체 뭐하는 프로그램인지 알아야한다.
wget프로그램은 GNU프로젝트의 일부로 HTTP, HTTPS, FTP 프로토콜로 통신할 수 있는 프로그램이다.

로그인과 예약의 방법은 아래와 같다.

[01.Create LoginCookie]
wget --keep-session-cookies --save-cookies=CookieName --post-data="login_id=xxx&pwd=xxx" "https://www.URL/loginpage.asp"

wget을 이용하여 단순 로그인도 가능하지만 그렇게하면 예약을 진행할 수 없다.
그러므로 cookie를 만들어 놓는다.


[02.Load Cookie and login+reservation]
wget --keep-session-cookies --load-cookies CookieName --post-data="Var=???&time=???&date=2019-0417&tel=01022223333" "https://www.URL/reservation_proc.asp"

01번에서 얻은 결과물인 CookieName을 이용하여 reservation_proc.asp 파일에 post Data와 함께 값을 넘겨준다. 

위의 방법으로 로그인과 예약은 이미 해결되었다.
(물론.. 위에 들어가는 post data들과 내부 process파일들의 명확한 이름을 얻기위해서는 많은 시간과 노력, 센스가 필요하다)


Automatic Login and reservation using bat of windows

이제 위에서 만든 wget의 명령어들을 특정 시간에 맞추어 쭉쭉 발사해주면된다.
이는 너무도 간단하다.

위의 01번과 02번 내용을 각각 01.bat , 02.bat 파일로 만든다.
01번 쿠키를 얻기위한 과정이기때문에 반복할 필요가 없지만 02번은 예약이 성공할때까지 패킷을 쭊쭊 날려주기위해 재귀호출을 이용한다.

즉 02.bat의 내용은 아래와같다.


wget --keep-session-cookies --load-cookies CookieName --post-data="Var=???&time=???&date=2019-0417&tel=01022223333" "https://www.URL/reservation_proc.asp"
02.bat


그렇다.
단순히 자기자신을 호출하게끔 만들어두는것이다.
그럼 내게 예약 문자가 날라올때까지 지켜보기만 하면된다.


요즘은 더나은 퍼포먼스를가진 언어들이 나오면서 조금더 심도있는(?) 매크로들을 돌리곤 한다. 법적인 이슈도 있으니 무리하지말고 적절히 사용하기 바란다.

사실.. 본 내용만으로 한큐에 성공할 수 있는 사이트는 "없다"고 단언할 수 있다.






댓글 없음:

댓글 쓰기

Post list