Tags
- menuconfig
- openwrt nat
- 자이언트얀
- nat 적용
- openwrt
- 네트워크
- ubuntu
- openwrt netfilter
- 나트랑 일정
- C
- 취미생활
- programmers level2 C
- nf_conntrack
- C언어
- nat table 확인하기
- 제주도
- 리눅스
- nat 정의
- 나트랑 여행 경비
- openwrt nat table
- Wireless
- Linux
- openwrt nat 테이블 확인하기
- WiFi
- hostapd
- 비즈팔찌
- openwrt nf_conntrack
- 프로그래머스 c언어
- WiFi6
- 동대문부자재시장
Archives
- Today
- Total
Mandoo’s WLAN story
[C] OpenWRT에서 Gateway 정보 가져오기 본문
리눅스 터미널에서 ifconfig로 조회되는 정보들은 ioctl 함수를 이용해 받아올 수 있다!
(ip, netmask, mac주소, broadcast addr, destination addr 등)
gateway 주소는 ifconfig로 조회되지 않기 때문에 popen을 쓰면 꽤 쉽게 받아올 수 있다!
popen은 pipe 통신을 이용해 리눅스에서 명령어를 실행시키고 그 결과를 file 형태로 받아오는 것이다.
(openwrt에서는 uci 명령어를 이용해 ubuntu나 cent os와는 사용법이 다르다.)
아래 코드를 보자
#include<stdio.h>
#include<stdbool.h>
int main(){
char network_info[32] = {0,};
FILE *fp;
fp = popen("uci get network.wan.ipaddr", "r");
if(fp == NULL){
printf("[error] pipe open fail!!\n");
return FALSE;
}
fgets(network_info, sizeof(network_info), fp);
network_info[strlen(network_info) - 1] = '\0';
pclose(fp);
printf("gateway addr : %s\n", network_info);
return TRUE;
}
openwrt 네트워크 설정 관련한 uci 명령어는 아래 게시글을 확인하자
'Mandoo's IT Story > Dev' 카테고리의 다른 글
[C언어] 서버-클라이언트 통신: 패킷 손실 문제의 원인 및 해결방법 (0) | 2023.07.26 |
---|---|
[C++] Visual Studio에서 C++ 시작하기! (0) | 2023.02.16 |
[Linux] shell script로 디스크 사용량 확인하기 (0) | 2022.09.20 |
[Linux/C] 시스템 가동 시간 확인하기 (0) | 2021.12.22 |
[Linux/C] Parsing json data using jansson library (0) | 2021.12.01 |