2014-09-18 5 views
0

AddIPAddress을 사용하여 Windows에서이 작업을 수행 할 수 있음을 알고 있지만 교차 플랫폼이 있는지 궁금해하고 있습니다. 이미이 프로젝트에서) 특정 NIC에 IP 주소를 추가하는 방법은 무엇입니까?크로스 플랫폼 방법으로 NIC에 IP 주소 추가 (C++ 사용)

예 :

UINT iaIPAddress; 
UINT iaIPMask; 

iaIPAddress = inet_addr("192.168.0.5"); 
iaIPMask = inet_addr("255.255.255.0"); 

dwRetVal = AddIPAddress(iaIPAddress, iaIPMask, pIPAddrTable->table[0].dwIndex, 
         &NTEContext, &NTEInstance); 
if (dwRetVal != NO_ERROR) { 
    printf("AddIPAddress call failed with %d\n", dwRetVal); 
} 

이 윈도우에서 작동하지만, 어떻게 리눅스에서 같은 일을 할 수 있습니까?

+2

당신은 왜 투표를 거절했는지 말해야합니다. –

+0

나는 이것이 왜 downvoted인지 몰라요. 이것은 매우 합리적인 질문입니다. 리눅스가 이것을하기위한 API가 없다는 것이 밝혀지면, 그 대답이되어야하고 대답이되어야한다. 내 upvote하십시오. –

+1

대답은 "이것을 수행 할 수있는 교차 플랫폼 방식이 없습니다"입니다. –

답변

1

아무 것도 없습니다.

부스트 OS 인터페이스 얻어 추출하고

따라서 부스트 시스템 관리 나 주변 제어를위한 라이브러리가없는 하드웨어에 OS 얘기 시켜서 플랫폼 독립성을 달성한다.

(예 : CPU 리소스 (스레드, 일정 등, IPC 및 동기화), 파일 시스템 및 네트워크 서비스) 특정 장치와 관련 수 있습니다 운영 체제 서비스을 둘러싼 라이브러리가있다 그러나 그들은 추상화 레이어 숙박 .

파일 시스템 드라이버 작성, GPT 파티션 테이블 조작, SSD 드라이브의 생성 스파 스 파일 또는 트림 섹터 관리를 용이하게하는 Boost 라이브러리는 없습니다.

마찬가지로 원시 TCP 패킷을 캡처하거나 디스플레이를 그래픽 모드로 전환하는 Boost 라이브러리가 없습니다.

+0

나는 "원인"을 의미하기 때문에 "그러므로"올바른 단어라고 생각하지 않습니다. OS 고유의 관리 인터페이스는 명확하게 추상화 될 수 있습니다. Boost 라이브러리의 범위를 벗어납니다. –