서버시스템의 인터페이스에 할당된 주소를 알아내는 방법
ifconfig는 초기 한번 정도만 사용하고 interface configuration의 약자로 리눅스/유닉스 시스템에서 네트워크 인터페이스를 설정하고 확인하는 명령어입니다.
▷ ifconfig 주요 용도
1. 네트워크 인터페이스 정보 조회
- 현재 활성화된 네트워크 인터페이스 목록 확인
- 각 인터페이스의 IP 주소, MAC 주소, 서브넷 마스크 확인
- 네트워크 통계 정보 (전송/수신 패킷 수, 에러 등) 확인
2. 네트워크 인터페이스 설정
- IP 주소 할당 및 변경
- 서브넷 마스크 설정
- 브로드캐스트 주소 설정
- MTU(Maximum Transmission Unit) 크기 조정
아래 함수는 기본적으로 정적으로 설정된서버의 IP 주소는 ifconfig 명령을 통해서 알아 내면 됩니다.
/**
* ifconfig 명령 사용 - 인터페이스별 IP 주소 배열 반환
*/
function getIpFromIfconfig() {
$output = shell_exec('ifconfig');
$interfaces = [];
// 인터페이스별로 분리
$blocks = preg_split('/\n(?=\S)/', $output);
foreach ($blocks as $block) {
// 인터페이스 이름 추출
if (preg_match('/^(\S+):?\s/', $block, $nameMatch)) {
$interface = $nameMatch[1];
// IP 주소 추출
if (preg_match('/inet (\d+\.\d+\.\d+\.\d+)/', $block, $ipMatch)) {
$interfaces[$interface] = $ipMatch[1];
}
}
}
return $interfaces;
}
// 확인
$addresses = getIpFromIfconfig();
foreach ($addresses as $interface => $ip) {
echo "{$interface}: {$ip}\n";
}
위와 같이하면 잘 나오는데 서버에 설정된 IP를 외부에 나가는 IP가 필요 할 수 있는데 그것으로 설정된 서버가 있는 반면에 AWS 같은 클라우드를 이용하면 동적으로 공인IP를 변경 할 수 있도록 되어 있는 경우는 네트웍카드에 사설IP가 설정 되어 있으니 다른 방식으로 관리해서 사용해야 합니다.
공인IP 가장 간단하게 아는 방법은 curl ifconfig.me 으로 알아 내면 되는데.
이건 외부서버에 내 IP가 뭐니 하고 물어 보는 방식이죠
