저는 임베디드 Linux 장치(즉, 모니터 없음)를 사용하고 있습니다. 비밀번호 없이 호텔 Wi-Fi에 연결하여 IP 주소를 얻을 수 있습니다.
# ifconfig wlan0
wlan0 Link encap:Ethernet HWaddr REMOVED
inet addr:172.20.2.27 Bcast:172.20.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13 errors:0 dropped:2 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1587 (1.5 KiB) TX bytes:6356 (6.2 KiB)
하지만 ping 8.8.8.8
작동하지 않습니다. 장치는 다른 Wi-Fi 네트워크에서 제대로 작동합니다.
답변1
비밀번호 없는 호텔 Wi-Fi는 일반적으로 일종의 전달을 사용하는데, 이는 내 노트북과 휴대폰에서 잘 작동합니다(그렇지 않은 경우 다음을 사용할 수 있습니다).http://neverssl.com/로그인 화면을 트리거합니다). 하지만 헤드리스 장치에서는 이 작업을 수행할 수 없습니다.
나는 그것을 시도했고 curl -L google.com
( -L
리디렉션이 켜진 곳에서) 다음을 얻었습니다.
<HEAD><TITLE>Redirecting...</TITLE>
<meta http-equiv="no-cache">
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT">
</HEAD><BODY>
<SPAN STYLE="font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">
</SPAN>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="https://dalan.cust.blueprintrf.com:8001/index.php?zone=guest&redirurl=https%3A%2F%2Fgoogle.com%2F";
</SCRIPT>
</BODY>
</HTML>
보고 있다https://dalan.cust.blueprintrf.com:8001/index.php?zone=guest&redirurl=https%3A%2F%2Fgoogle.com%2F내 노트북의 시크릿 모드에서 필요한 팝업이 있는 다른 페이지로 이동합니다.
Inspect(Chrome에서)를 마우스 오른쪽 버튼으로 클릭하면 이 버튼이 여러 사전 설정 변수를 사용하여 POST를 수행하는 양식의 일부임을 알 수 있습니다.
<form name="form-lower-plan" class="js-form-sign-in" action="https://dalan.cust.blueprintrf.com:8001" method="post" novalidate="">
<div class="l-center-align l-margin-bottom-five-quarters l-padding-five-quarters t-bg-standard-30">
<p class="t-font-weight-semibold t-font-l t-line-height-xxxl l-margin-top-none l-margin-subsection-bottom-small"> Internet </p>
<div class="l-margin-subsection-bottom-small">
<p class="l-margin-none t-font-s">Free for everyone</p>
<p class="l-margin-none t-font-s">Best for: email, web browsing</p>
</div>
</div>
<div class="l-margin-bottom-five-quarters ">
<input type="hidden" name="MAC_ADDRESS" value="REMOVED">
<input type="hidden" name="AUTO_AUTH_STATUS" value="NEW">
<div class="l-form-group">
<input id="id-remember-device-free-plan" type="checkbox" name="REMEMBER_THIS_DEVICE" value="TRUE">
<label for="id-remember-device-free-plan" class="t-label-standard-100 l-margin-none"> Connect with one click at future stays </label>
</div> <p class="t-font-xs t-line-height-xs l-margin-top-five-quarters">Connect faster whenever a free connection is available. Sign in to your Marriott Bonvoy account on the next screen to automatically receive free internet during your stays.</p>
</div>
<input type="hidden" name="AUTH_ON_FREE" value="FALSE">
<input type="hidden" name="ROOM_NUMBER" value="">
<input type="hidden" name="LAST_NAME" value="">
<input type="hidden" name="CURRENCY" value="USD">
<input type="hidden" name="PROPERTY_CODE" value="DALAN">
<input type="hidden" name="iZONE" value="GUEST">
<input type="hidden" name="iRELEASE" value="4">
<input type="hidden" name="OTHER_PLAN" value="P_PLAN2">
<input type="hidden" name="OTHER_PLAN_PRICE" value="4.95">
<input type="hidden" name="SELECTED_PLAN" value="P_PLAN1">
<input type="hidden" name="SELECTED_PLAN_PRICE" value="0.00">
<input type="hidden" name="SELECTED_PLAN_TEXT" value="Internet Services">
<input type="hidden" name="DURATION" value="7">
<div class="l-center-align ">
<button class="m-button m-button-primary l-padding-left-seven-quarters l-padding-right-seven-quarters l-padding-top-three-quarters l-padding-bottom-three-quarters" type="submit">Connect Now</button>
</div>
</form>
이것으로부터 나는 다음을 볼 수 있다:
- 이것은 게시물입니다.
- URL은 다음과 같습니다.https://dalan.cust.blueprintrf.com:8001
- 기본값으로 설정된 매개변수가 많습니다.
나는 이것을 사용하여 컬에서 양식을 호출합니다.
curl -L -d "AUTH_ON_FREE=FALSE&ROOM_NUMBER=&LAST_NAME=&CURRENCY=USD&PROPERTY_CODE=DALAN&iZONE=GUEST&iRELEASE=4&OTHER_PLAN=P_PLAN2&OTHER_PLAN_PRICE=4.95&SELECTED_PLAN=P_PLAN1&SELECTED_PLAN_PRICE=0.00&SELECTED_PLAN_TEXT=Internet Services&DURATION=7" -X POST https://dalan.cust.blueprintrf.com:8001
반품:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<HTML>
<HEAD><TITLE>Redirecting...</TITLE>
<meta http-equiv="no-cache">
<meta http-equiv="expires" content="Wed, 26 Feb 1997 08:21:57 GMT">
</HEAD><BODY>
<SPAN STYLE="font-family: Tahoma, Verdana, Arial, Helvetica, sans-serif; font-size: 11px;">
</SPAN>
<SCRIPT LANGUAGE="JavaScript">
document.location.href="https://www.marriott.com/hotels/einterface/DALAN?MAC_ADDRESS=REMOVED&REMEMBER_THIS_DEVICE=&AUTO_AUTH_STATUS=&OTHER_PLAN=P_PLAN2&iRELEASE=4&iZONE=GUEST&CURRENCY=USD&SELECTED_PLAN_PRICE=0.00&DURATION=7&SELECTED_PLAN=P_PLAN1&AUTH_ON_FREE=FALSE&ACTION_TYPE=FREE&LSP_URL=dalan.cust.blueprintrf.com:8001&OTHER_PLAN=P_PLAN2";
</SCRIPT>
</BODY>
</HTML>
이제 8.8.8.8과 google.com에 ping을 보낼 수 있습니다!