2011-09-13 4 views
1

시간 동기화 방법을 사용하여 로컬 시간을 서버 시간과 동기화합니다. 어떤 경우에는 서버와 로컬 시스템이 모두 동일합니다. 이 경우 로컬 컴퓨터의 루프백 IP 주소를 찾아 서버 IP 주소가 동일한 지 확인해야합니다. 이것은 루프백 IP 주소를 찾기위한 API가 필요하기 때문에 필요합니다.컴퓨터의 루프백 IP 주소를 찾는 API가 C++에 있습니까?

+4

루프백 주소는 "항상"127.0.0.1 (http://en.wikipedia.org/wiki/Loopback)입니다. 공용 IP를 얻는 방법은 http://stackoverflow.com/questions/212528/linux-c-get-the-ip-address-of-local-computer를 참조하십시오. – larsmoa

+0

왜 지구상에 관심이 있습니까? 호스트가 자신과 시간을 동기화하는 것은 의미가 없습니다. 누군가는 서버의 주소를 구성해야하므로 이해가되는 주소를 구성해야합니다. –

+1

표준 NTP 솔루션은 계층을 추적하는 것입니다. 시간 신호를 수신하는 서버에는 계층 1이 있습니다. 다른 모든 요소에는 동기화 된 서버의 1 + 계층이 있고 계층 10은 동기화되지 않은 것으로 간주됩니다. 호스트가 가능한 소스 목록에 있으면 자체와 동기화하려고 할 때 계층이 늘어나 다른 서버 (낮은 계층이 선호 됨)를 선택하거나 동기화를 중지 (계층 10에 도달)하게됩니다. 너는 NTP를 사용하고 바퀴를 다시 발명하지 않는가? –

답변

0

그래도 작동하지 않습니다. 단일 시스템이 단일 IP 주소로 표시된다고 가정합니다. 그건 사실이 아니야. 어댑터가 있으며 "루프백"어댑터는 모든 시스템에있는 가상 어댑터입니다. 그러나 루프백 어댑터는 물리적 인 어댑터와 고유하고 구별되며 따라서 루프백 IP 주소 (127.0.0.1)는 실제 어댑터의 IP 주소와 구별됩니다.

GetAdaptersInfo으로 로컬 IPv4 주소의 전체 목록을 얻을 수 있습니다. 서버 주소가 목록에 있는지 확인하십시오. 또는 Jan Hudec이 제안한대로 NTP를 사용하십시오.

0

127.0.0.1에서 127.255.255.255 사이의 주소 범위에있는 루프백 주소. 원하는 것을 선택할 수 있습니다. 대부분의 사람들은 대개 127.0.0.1을 선택했습니다. API가 필요하지 않습니다.

1

루프백 주소는 모든 IPv4 시스템에서는 127.x.x.x (작동 가능, 0.0.1은 표준)이고 IPv6 컴퓨터에서는 :: 1이어야합니다. 이것을 보지 않아도됩니다. 항상 작동 할 것이고, 각 기계에서 스스로를 참조 할 것입니다.

관련 문제