2011-04-18 1 views
1

나는이 사이트를 운영하며 사람들을위한 사이트 섹션에 대한 액세스를 승인합니다. 정적 ips 만 승인하고 싶습니다. IP가 많은 경우 정적인지 아닌지 어떻게 알 수 있습니까? 나머지 부분은 할 수 있지만 소켓 라이브러리 나 사용자가 정적 또는 동적 IP를 사용하고 있는지 검색 할 수있는 부분이있을 수 있습니다.정적 또는 동적 ips

감사합니다.

PHP/J도 작동합니다.

+0

해당 IP가 DHCP 주소 풀에 있는지 확인한 다음 정말로 더 이상의 정보가 없으면 나는 진짜 충고를 할 수 없습니다. – Vetsin

+0

나는 이것이 가능하다고 생각하지 않는다; IP 기반 인증에는 [IP 주소 스푸핑] (http://en.wikipedia.org/wiki/IP_address_spoofing)이 적용됩니다. – Donut

답변

3

IP 주소가 정적인지 동적 할당인지를 본질적으로 알 수있는 방법은 없습니다. IP가 해결하는 호스트 이름을 기반으로, 정적인지 아닌지에 대한 추측을 할 수 있지만이를 촉진 할 수있는 결정적인 것은 없습니다.

소켓 모듈을 사용하여 IP를 호스트 이름으로 확인하고 일종의 "최선의 추측"알고리즘을 기반으로 "정적"또는 "동적"으로 플래그를 지정할 수 있지만 그럴 수 있습니다.

다음은 임의의 Verizon FiOS IP 주소를 사용하는 예입니다. 이것은 "pool"로 시작하는 모든 IP가 동적으로 할당된다고 가정합니다.

>>> hostname = socket.gethostbyaddr('71.243.222.111')[0] 
>>> if 'pool' in hostname: 
...  print hostname, 'is dynamic' 
... 
pool-71-243-222-111.lsanca.fios.verizon.net is dynamic 

당신은 다양한 명명 규칙을 모두 결정하는 매우 힘든 시간을 보내려고하고 이것은 어떠한 방식으로도 완벽한 솔루션이 될 것입니다.

먼저 해결해야 할 문제의 유형과 IP 주소로 필터링하는 액세스가 필요한 종류의 인증을 제공하는지 여부를 자문 해보고 싶을 수 있습니다.

0

실용적인 솔루션을 사용하고 싶습니다. 새 계정은 며칠의 시험 단계가 있습니다. 그 후 그들은 가입에 사용 된 것과 동일한 IP에서만 로그인 할 수 있습니다. 그들은 여전히 ​​동일한 IP를 가지고 있다면 그것은 가장 정적 일 것입니다.

+0

정말 신뢰할만한 해결책이 아닙니다. 예를 들어 내 ISP는 고정 IP를 제공하지 않으며 모뎀이 연결될 때마다 다른 IP 주소를 얻습니다. 그러나 연결이 끊어지지 않으면 내 ISP가 24 시간마다 자동으로 연결을 끊지 않기 때문에 몇 주 동안 동일한 IP를 유지할 수 있습니다. – comfreak

0

글쎄, 문제 없지, 그렇지? 그들이 IP X에서 액세스를 요청하면 IP X에서 액세스 권한을 부여합니다. 동적 인 것으로 판명되고 전환하면 더 이상 액세스 할 수 없습니다. 실제로 동적 IP로부터의 액세스는 없습니다.

IP 할당 유형에 대한 권한은 사용자가 액세스하는 호스트입니다. 따라서 사용자는 자신의 설정에서 무엇을 말 할 것인지 물어볼 필요가 있습니다.