-
PHP를 이용한 공유기 페이지 작성.Programming/Project 2018. 8. 22. 16:39
앞서, PHP PSR-1과 2 권고안을 뒤죽박죽 섞어서 만든 코드들이다.
프로젝트 작업 속도가 너무 느려서 짜다보니 어떤 것들은 2000년대 초반에 참고되었던 자료들도 정말 많았다.
또한 어떤 것들은 클래스, 네임스페이스를 적용하여 좀 현대적인 코드들도 있는 것이다.
( 클래스와 네임스페이스를 이용하여 코드 개선 예정.)
예전에 작업한 라즈베리파이 AP 모드를 완료한 후.
이제 본격적으로 PHP를 사용하여 공유기 페이지 작성에 들어갔다.
일반적으로, 공유기 페이지는 외부에서 접속을 할 수 없다.
처음엔 리눅스 파일을 건드려서 아이피를 막는다던지 생각을 해보았는데 여간 쉬운 작업이 아닌 것 같고..
( 사실, 리눅스를 일단 잘 확실히 모른다. )
프로그래밍적으로 해결해 보고 싶었다.
하지만, 이 기능도 한계가 있다.
일단, 실제 공유기처럼 아두이노와 서버사이에 존재하여 연결을 connect하고 disconnect를 하지는 않는다.
어떻게 보면 그냥 서버와 장비 사이에 연결된 장비의 정보를 알려주는 것 밖에 되지는 않는다는 점이다.
만약, 한다면 쉘 명령을 스크립트로 작성을 해야할 것 같아 보인다.
JSP에서 조회에서 받아서 넘겨주는 식이기 때문에 JSP에서 요청을하여 담긴 정보가 없으면 실행이 되지 않는다( 리퀘스트 )는
점을 이용했다.
내부 아이피를 배열에 저장하여
현재 접속한 장비가 내부 아이피에 속해 있는지 if문을 이용하여 비교를 한 후 접속을 한다.
밑 스샷.
현재 그냥 인터넷만 연결해놓은 컴퓨터에서 라즈베리파이의 공유기로 접속을 했을 때 발생시키는 페이지창이다.
인터넷에서 부트스트랩 무료 템플릿을 적용하여 작성을 하였다.
실제 공유기처럼 만들기 위해 필요한 최소한의 작업이라고 생각을 했다.
공유기를 작업했던 적용했던 IP는 192.168.4.2 ~ 192.168.4.20까지 설정을 해두었고 ( 변경예정 )
192.168.4.1은 라즈베리파이에서 사용하는 무선 IP. 즉, wlan0의 주소이다.
즉, 어떤 컴퓨터로 pi3-ap로 와이파이에 접속을 하게 되면 D클래스에서 뭔가 하나가 배정이 될 것이다.
( 이 때, 192.168.4.19라고 가정을 하자. )
그렇게 해서 적용을 하면 203.250.35.xxx/login.php 접속이 된다.
192.168.4.1/login.php 도 마찬가지이다.
잘 된다!!! 하지만, 나도 잘 모르는 보안적으로 취약한 부분이 있을 것이라 생각되지만..
ㅠㅠ
또한, 현재 JSP 서버와 아두이노 사이에서 움직여 주어야 해서
JSP 서버와 통신을 하기 위해 .ini파일을 만들어서 특정 ip만을 핵심적인 기능에 접속을 할 수 있게 만들었다.
로그인 메뉴.
회원가입은 간단하게 아이디, 비밀번호, 비밀번호 확인, 이메일 정도만 기입하면 로직을 통하여 완료가 될 수 있게 하였다.
로그인을 완료하면 로그인 성공창 생성과 함께 해당 스크린샷 페이지가 생성이 된다.
여기에서 불 수 있다.
현재 접속한 장비의 IP, 맥주소를 확인한다.
또,
NAT SYS_INFOMATION 부분은 현재 등록된 공유기의 IP를 나타내고
PRODUCT_INFORMATION 부분은 현재 등록된 아두이노의 장비들을 나타낸다.
JSP에서 장비를 연결하고 끊는 것을 해주고 있어서
딱히 삭제, 추가 기능이 필요한 것 같지는 않았지만
삭제기능 버튼만 만들어서 작동을 시켜놓았다.
+ ) 추가적인 포트포워딩 설정이나 더 세밀한 추가 작업을 해주면 더 좋은 퀄리티가 나올 것으로 생각이 된다. ㅎㅎ
이정도의 큰 프로젝트는 처음이라 부족한 부분이 많다는 것을 느꼈다.
IPTIME 공유기 페이지도 이런식으로 꾸민다고 하면 더 이뻐질 듯 하다. ( 개인적 생각ㅋ )
반응형'Programming > Project' 카테고리의 다른 글
주요정보통신기반시설 가이드 - 취약점 진단 (0) 2020.11.09 대기열 프로젝트 (0) 2019.04.02 Jmeter 이용한 라즈베리파이 HTTP 통신 부하테스트 (0) 2018.07.04 라즈베리파이 AP 만들기. (12) 2018.02.13