이 도구를 사용하면 PHP, JavaScript 및 Bootstrap CSS 프레임워크를 사용하여 개발된 UniFi 컨트롤러 API를 통해 노출된 데이터를 탐색할 수 있습니다. UniFi API 브라우저 도구보다 더 많은 API 엔드포인트를 지원하는 UniFi 컨트롤러 API에 액세스하기 위한 PHP 클래스가 번들로 제공됩니다.
UniFi 컨트롤러 API와 상호작용하기 위해 자신만의 PHP 코드를 만들 계획이라면 https://github.com/Art-of-WiFi/에서 찾을 수 있는 API 클라이언트 클래스의 독립형 버전을 사용하는 것이 좋습니다. UniFi-API-클라이언트. 거기에서 사용 방법에 대한 예제와 자세한 지침도 찾을 수 있습니다.
UniFi API 브라우저를 사용할 때 다음 사항에 유의하세요.
구성 파일의 구조가 변경되었으므로 1.x에서 2.x로 업그레이드할 때 새로 설치하는 것이 좋습니다.
UniFi API 브라우저 도구는 다음 기능을 제공합니다:
$debug
true
로 설정)번들 API 클라이언트는 더 많은 API 엔드포인트를 지원하지만 API 브라우저에 모두 추가하는 것이 타당하지는 않습니다.
이 도구의 설치는 매우 간단합니다. 이를 수행하는 가장 쉬운 방법은 쉽게 업데이트할 수 있는 git clone
사용하는 것입니다.
/var/www/html
)로 cd
후 명령 프롬프트에서 다음 명령을 실행합니다. git clone https://github.com/Art-of-WiFi/UniFi-API-browser.git
또는 zip 파일을 다운로드하여 원하는 디렉터리에 압축을 푼 다음 아래 구성 단계를 따를 수도 있습니다.
@scyto는 UniFi API 브라우저 도구를 빠르고 쉽게 배포할 수 있도록 Docker 컨테이너를 관리합니다. 자세한 내용은 저장소 내 Wiki 페이지를 참조하세요. Docker 기반 설치와 관련된 지원은 제공하지 않습니다.
config/config-template.php
라는 파일에 구성되어 있으며 config/config.php
에 복사/이름 변경해야 합니다.config/config.php
파일 내의 배열에 여러 컨트롤러 구성을 저장할 수 있습니다.config/config-template.php
파일을 참조하세요.config/users-template.php
파일의 지침을 참조하세요.http(s)://<server IP address>/UniFi-API-browser/
UniFi OS 기반 컨트롤러(예: UniFi Dream Machine Pro)에 대한 지원이 버전 2.0.7에 추가되었습니다. UniFi OS 장치에 대한 세부 정보를 config/config.php
파일에 추가할 때 URL에 포트 접미사나 슬래시를 추가하지 않도록 주의하세요.
UniFi API 브라우저를 사용하여 WAN 인터페이스를 통해 UniFi OS 기반 게이트웨이의 네트워크 애플리케이션에 연결할 때, 게이트웨이의 로컬 인터페이스에서 포트 443에 대한 외부 액세스를 허용하는 특정 방화벽 규칙을 생성해야 합니다. 자세한 내용은 다음 블로그 게시물을 참조하세요: https://artofwifi.net/2022/04/07/how-to-access-the-unifi-controller-by-wan-ip-or-hostname -on-a-udm-pro/
버전 2.0.0부터 컬렉션 드롭다운 메뉴를 config.php
파일에 추가하여 자신만의 옵션으로 확장할 수 있습니다.
예는 다음과 같습니다.
/**
* adding a custom sub-menu example
*/
$ collections = array_merge ( $ collections , [
[
' label ' => ' Custom Menu ' , // length of this string is limited due to dropdown menu width
' options ' => [
[
' type ' => ' collection ' , // either 'collection' or 'divider'
' label ' => ' hourly site stats past 24 hours ' , // string that is displayed in the dropdown menu
' method ' => ' stat_hourly_site ' , // name of the method/function in the API client class that is called
' params ' => [( time () - ( 24 * 60 * 60 )) * 1000 , time () * 1000 ], // an array containing the parameters as they are passed to the method/function
],
[
' type ' => ' collection ' ,
' label ' => ' daily site stats past 31 days ' ,
' method ' => ' stat_daily_site ' ,
' params ' => [( time () - ( 31 * 24 * 60 * 60 )) * 1000 , time () * 1000 ],
],
[
' type ' => ' divider ' , // dividers have no other properties
],
[
' type ' => ' collection ' ,
' label ' => ' enable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ true ]
],
[
' type ' => ' collection ' ,
' label ' => ' disable the site LEDs ' ,
' method ' => ' site_leds ' , // don't go too wild when adding such calls, this example is simply to show the flexibility
' params ' => [ false ]
],
],
],
]);
참고: collection
유형 메뉴 옵션의 경우 type
, label
, method
및 params
"속성"이 필요합니다.
위 예의 결과는 다음과 같습니다.
git clone
명령을 사용하여 도구를 설치한 경우 도구가 설치된 디렉터리로 이동한 후 거기에서 git pull
명령을 실행하여 업데이트를 적용할 수 있습니다.
그렇지 않은 경우 최신 zip 파일의 내용을 도구가 설치된 디렉터리로 복사하면 됩니다.
이 도구와 함께 제공되는 PHP API 클라이언트는 다음 개발자의 작업을 기반으로 합니다.
Ubiquiti에서 게시한 API:
기타 포함된 라이브러리:
주의
UniFi API 브라우저 도구는 UniFi 컨트롤러의 민감한 데이터 및 구성 옵션에 접근할 수 있는 강력한 도구라는 점을 기억하는 것이 중요합니다. 따라서 신뢰할 수 있는 개인에게만 도구에 대한 액세스를 제한하는 등 적절한 보안 조치를 취하는 것이 중요합니다. 또한 서버에서 PHP 코드를 실행하는 것과 관련된 보안 위험을 알고 있어야 합니다.
포함된 config/users-template.php
파일을 기반으로 config/users.php
를 생성하여 사용자 이름/비밀번호 인증 기능을 활성화하는 것이 좋습니다 . config/users.php
파일에 입력할 비밀번호와 해당 SHA512 해시를 생성할 때 강력한 임의 비밀번호를 사용해야 합니다. 자세한 내용은 config/users-template.php
파일의 지침을 참조하세요.
이 프로젝트는 활발하게 유지관리되고 있으며, 피드백과 제안은 언제나 환영합니다. 문제가 발생하거나 개선을 위한 제안 사항이 있는 경우 GitHub 문제 목록이나 Ubiquiti 커뮤니티 포럼(https://community.ubnt.com/t5/UniFi-Wireless/UniFi-API-browser-tool-released/)을 이용하세요. mp/1392651)을 통해 여러분의 아이디어와 질문을 공유해 보세요.
다음은 도구가 작동하는 모습을 보여주는 몇 가지 스크린샷입니다.
사용자 인증이 활성화된 경우 로그인 양식:
컨트롤러 선택 드롭다운 메뉴:
사이트 선택 드롭다운 메뉴:
컬렉션 드롭다운 메뉴:
JSON 형식으로 사이트 설정 컬렉션 표시:
대화형 PHP 형식으로 사이트 설정 컬렉션 표시:
"정보" 모달: