유효한 퍼블릭 IP 주소를 확인하는 방법은 무엇입니까?


39

X-Forwarded-For HTTP 헤더에서 제공 한 IP 주소 목록을 고려하십시오 .

10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43

이 목록에서 공개적으로 액세스 가능한 첫 번째 주소를 알고 싶습니다. 충분히 쉽게 살펴볼 수 있지만 공개적으로 액세스 가능한 것을 어떻게 알 수 있습니까? 10.0.0.142워크 스테이션이고 192.168.0.10내부 프록시이며 212.43.234.12의 프록시를 통해 공개적으로 액세스 할 수있는 주소 인 나 (교육받지 않은 눈)에게 보입니다 54.23.66.43. 코드에서 이것을 계산하는 방법이 있습니까?

첫 번째 직감은 주소로 시작 10.하거나 192.공개적으로 액세스 할 수없는 주소 이지만 http://simplesniff.com 은 내 집의 IP 주소가임을 나타냅니다 192.117.111.61. 어떤 주소가 공개 주소이고 어떤 주소가 비공개인지 결정하는 공식이 있습니까? 문제의 서버에 핑을 시도해도 일부 서버가 핑에 응답하지 않으므로 로컬 네트워크에 내부 주소와 일치하는 주소가있을 수 있으므로 도움이되지 않을 수 있습니다.


3
또한도 지적 할 경우 당신이 주소를 라우팅 할 수있는 발견, 일부 기업은 내부적으로 공공 주소 공간을 남용. RFC1918 공간 대신 ​​내부 회사 네트워크에서 AFRINIC 및 AT & T IPv4 공간을 사용할 수없는 매우 크고 잘 알려진 회사 이름을 직접 알고 있습니다. 모든 HTTP 트래픽을 프록시합니다. -회사 네트워크의 헤더는 실제로 소유하지 않은 공개 공간을 표시합니다.
Mike Pennington

APNIC 번호를 사용하는 것을 제외하고 @MikePennington의 직접 경험. 내부 컴퓨터 (특히 대상이 서브넷에있는 컴퓨터)가 공용 서버 중 하나에 액세스하려고 할 때 문제가 발생할 수 있습니다.
emynd

@MikePennington-실제로 개인 네트워크 외부 (예 : 인터넷) 외부에서 사용중인 꼭두각시 IPv4 주소를 사용하는 개인 네트워크의 경우 개인 네트워크 내부의 누군가가 같은 범위의 IP 주소를 가진 공용 사이트에 어떻게 도달합니까? 해당 요청이 개인 네트워크 내의 일부 컴퓨터 (아마도 자신의 컴퓨터)로 라우팅되지 않습니까?
Kevin Fegan

x-forwarded-for를 맹목적으로 신뢰하는 것은 나쁜 생각입니다. 모든 가해자가 원하는 주소를 주장하는 가짜 x-forwarded-for 헤더를 설정하는 것은 사소한 일입니다.
피터 그린

답변:


24

RFC 1918은 개인 IP 주소 범위를 정의합니다. 모습이 여기에 있습니다.

그 문서에서 :

  1. 개인 주소 공간

    IANA (Internet Assigned Numbers Authority)는 개인 인터넷을 위해 다음 3 개의 IP 주소 공간 블록을 예약했습니다.

    10.0.0.0-10.255.255.255 (10/8 접두사)

    172.16.0.0-172.31.255.255 (172.16 / 12 접두사)

    192.168.0.0-192.168.255.255 (192.168 / 16 접두사)


감사합니다. 나는 127.0.0.0/16그 목록에없는 것이 흥미 롭다 .
dotancohen


4
@dotancohen : 루프백 블록은 / 16이 아니라 / 8이며 개인 주소 공간이 아니기 때문에 해당 목록에 없습니다.
Blrfl

@Blrfl : 감사합니다. 루프백 블록의 너비가 확실하지 않았습니다. 실제로 개인 주소를 식별하는 것이 아니라 비공개 주소 (비공개 주소 중 일부)를 식별하려고합니다. RFC 1918/6890 주소 및 127.0.0.0/8 공간 외에 다른 공개 주소가 아닌 다른 주소가 있습니까?
dotancohen

1
en.wikipedia.org/wiki/… 240.0.0.0-254.255.255.254 (240.0.0.0/4 및 255.0.0.0/8)
David Houde

37

원래 RFC 1918 공간 (현재 RFC6890으로 업데이트 됨 ) 외에도 192.0.2.0과 같이 공개적으로 발표되지 않은 다른 여러 블록이 있습니다. 또한 누군가가 공용 인터넷에서 발표되지 않은 유효한 IPv4 공간을 가지고있을 수도 있습니다.

가장 간단한 방법은 telnet route-views.oregon-ix.net로 로그인 rviews하여 직접 찾으십시오. 예를 들어 AS7018 (AT & T)에서 발표 한 "192"공간입니다.

route-views>sh ip route 192.199.1.0
Routing entry for 192.199.1.0/24
  Known via "bgp 6447", distance 20, metric 0
  Tag 7018, type external
  Last update from 12.0.1.63 3w1d ago
  Routing Descriptor Blocks:
  * 12.0.1.63, from 12.0.1.63, 3w1d ago
      Route metric is 0, traffic share count is 1
      AS Hops 2
      Route tag 7018

route-views>

반면에 192.0.2.0/24 (ref RFC6890 )를 찾을 수 없다는 것을 알 수 있습니다 ...

route-views>sh ip route 192.0.2.0 255.255.255.0
% Subnet not in table
route-views>

169.254.0.0/16 (또는 그 이상)도 아닙니다 ...

route-views>sh ip route 169.254.0.0 255.255.0.0 longer
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is 128.223.51.1 to network 0.0.0.0

route-views>

1
RFC 1918RFC 6890에 의해 업데이트되지 않았습니다. RFC 6890은 단순히 " IPv4 주소 블록 (192.0.0.0/24)을 IANA에 할당하는 것을 반복합니다. 또한 IANA에게 IPv4 및 IPv6 특수 목적 주소를 재구성하도록 지시합니다. 레지스트리. "개인용 IPv4 특수 목적 주소 레지스트리 항목을 업데이트하지 않으며 IPv4 주소 블록 192.0.0.0/24는" IETF 프로토콜 할당 "으로 분류됩니다 .
one.time

2
@ one.time, RFC 6890에는 RFC 1918에 예약 된 주소 공간의 상위 집합이 포함되어 있습니다. 왜 192.0.0.0/24에 대해 이야기하는지 모르겠습니다. 아마 당신은 내 대답을 더 자세히 읽어야 할 것입니다 :-)
Mike Pennington

IPv4 블록 192.0.0.0/24는 RFC 6890의 주요 요점이므로 RFC 1918과의 적절한 측정 및 비교를 위해이를 참조했습니다. "원래 RFC 1918 공간 (현재 RFC6890으로 업데이트 됨) 외에는" 게시물을 읽을 때 호기심이 생겼습니다. RFC 6890은 192.0.0.0.24를 포함하기 위해 IPv4 및 IPv6에 대한 특수 목적 주소 레지스트리 항목에 대한 업데이트 외에도 RFC 1918에 대한 업데이트가 아닙니다. 나는 그 진술의 정확성에 관한 관찰을 제공하고 싶었습니다. HTHs ;-)
one.time

5
@ one.time, pedantically RFC 6890는 하나 ... 공공 BGP 테이블에서 유효한 IP 공간 고려할 때 대신 RFC 1918, RFC 6890를 사용해야합니다, RFC 1918 기능상의 업데이트하지 않습니다
마이크 페닝 턴

13

Team Cymru 는 IPv4 및 IPv6 모두에 대한 참조를 제공하여 할당되지 않은 / 예약 된 / 개인 IP 주소를 필터링하는 데 사용할 수 있습니다. 잘 알려진 접두사에 대한 간단한 목록과 공간이 포함 된 훨씬 더 큰 목록으로 제공됩니다. 아직 RIR에 의해 할당되지 않았습니다.

또한 인터넷에 기본 무료 영역을 실행할 수없는 경우 무료 피어링을 요청할 수있는 BGP bogon 서버를 실행합니다.


2
솔직히 '지정되지 않은'은 필터링하는 데 쓸모없는 것입니다. 필터링하면 해결하는 것보다 훨씬 많은 문제가 발생합니다. 그리고 실제 bogon은 매우 안정적이고 정적이기 때문에 쉽습니다.
ytti

2
좋아, 그럼 그 것을 사용하지 마십시오, 내가 말했듯이, 그들은 다양한 맛을 제공합니다.
Olipro

2

다양한 사용 사례를 위해 예약 된 다양한 범위가 있습니다. IANA는 권위 있고 포괄적 인 목록을 가지고 있습니다. 여기에는 RFC1918, RFC6761 및 100.64 / 10 CGN 블록과 같은 최신 예약이 포함됩니다. 주소가 발견되면 개인 네트워크에서 사용 된 것이므로 첫 번째 공개 주소를 찾기 위해 다른 사람에게 유리하게 폐기해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.