문제

나는 현재 인터페이스 설정을 얻기 위해 소켓 IOCTL을 사용하고 있으며 이미 IP, 인터페이스 이름, 넷 마스크를 가져오고 인터페이스가 위 또는 아래에 있는지 확인할 수 있습니다 (IOCTL을 SioCGifConf, siocgifnetmask 및 siocgifflags로 수행합니다).

DHCP를 통해 현재 IP 주소가 얻어 졌는지 또는 정적인지 여부를 알 수있는 방법을 찾고 있습니다.

내가 원하는 모든 것에 대해/etc/network/인터페이스를 확인할 수 있지만 프로그래밍 방식으로 수행 할 수있는 방법을 찾고 있습니다 (이 단어가 존재합니까?).

누구든지 이것에 대한 통찰력이 있습니까?

한 가지 더, 나는 Linux에서 일하고 있습니다 (지금은).

건배

도움이 되었습니까?

해결책

Linux의 다양한 DHCP 클라이언트와 함께 - 펌프, DHCPCD, dhclient, UDHCPC, 그리고 내가 모르는 다른 사람들은 아마도 일반적으로 불가능합니다.

그러나 "우분투의 기본 설치"라고 말하는 특정 배포를 목표로하는 경우 Stefan과 같은 솔루션을 조사 할 수 있습니다. 여기에 나열된 4 개의 DHCP 클라이언트는 모두 Ubuntu에 설치할 수 있으며 기본 DHCP 클라이언트 인 DHClient를 교체 할 수 있습니다.

다른 팁

Ubuntu를 실행하는 경우, 임대는 /var/lib/dhcp3/dhclient-]에 저장됩니다.

대부분의 배포판에서와 같이 IP 주소가 DHCP를 통해 IP 주소가 할당 된 경우 커널 인터페이스 (IOCTL)를 통해 알 수 없다고 생각합니다. DHCP는 사용자가 가지고있는 것처럼 원격 소스가 제공 한 데이터로 커널을 구성하는 사용자 랜드 앱입니다. 수동으로 완료되었습니다. 실제로 ISC DHClient를 살펴보면 DHCP 서버에서 IfConfig, Route 및 사용자로 입력 할 수있는 다양한 기타 명령을 수행하는 간단한 쉘 스크립트로 전달됩니다.

따라서 스테판이 제안한대로 DHCP 클라이언트와 배포하는 방법을 살펴 봐야 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top