2014-11-27 4 views
0

3 대의 PC가 있고 다른 하나는 클라이언트입니다. 클라이언트는 서버 로컬 IP를 입력하여 서버에 연결합니다. 모두 잘 작동하지만 라우터가 다시 시작되고 서버에 다른 로컬 IP가 할당되면 문제가 발생합니다. 이제 클라이언트에 서버의 IP 주소를 다시 입력해야합니다. 로컬 정적 IP를 사용하여이 문제를 해결할 수 있지만 로컬 고정 IP를 설정하지 않고 연결할 수 있습니까?로컬 고정 IP없이 로컬 컴퓨터 연결

편집 : TCP 소켓 사용.

+5

호스트 이름을 사용할 수 있습니까? – Knerd

+1

클라이언트와 서버 간의 연결 특성은 무엇입니까? TCP? UDP? 좀 더 높은 수준의 프로토콜? –

+1

왜 로컬 DNS 이름을 사용하지 않습니까? – Rohit

답변

2

IP 주소 대신 원격 컴퓨터에 연결하기 위해 호스트 이름을 사용하십시오. DNS 조회에 의존해야합니다.

+0

알렉스, 고맙습니다;) – xmen

1

라우터의 DHCP 기능을 사용하기 때문에 문제가 발생합니다. DHCP의 D는 "Dynamic"의 약자이므로 IP 주소가 경우에 따라 변경 될 수 있습니다.

가장 간단한 해결책은 'DHCP를 사용하지 않기'입니다.

[솔루션의 상세보기] 당신의 PC를위한

할당 고정 IP 주소 및 IP 그들 가운데에 액세스 주소를 것을 사용합니다.

일반적으로 라우터는 192.168.1.1에서 192.168.1.255 범위의 로컬 IP 주소를 사용하며 192.168.1.1은 라우터 자체에 사용됩니다.

3 대의 PC에 각각 192.168.1.2, 192.168.1.3 및 192.168.1.4의 IP 주소를 사용할 수 있습니다. 서버를

http://<server>/isthisme 

같은 고유 엔드 포인트, 무언가를 제공에 대해 당신은 어떻게 할 수

+0

사실 일반 사용자에게 이것을 묻는 것은 그들에게 어려울 수 있습니다. 모든 사용자가 고정 IP 주소를 정의 할 수있는 것은 아닙니다. 그게 내가이 해결책을 최후로 남겨 두었던 이유입니다.고마워요 :) – xmen

+0

새 IP 주소가 라우터의 DHCP 기능에 의해 서버에 설정되면 새 IP 주소를 어떻게 알 수 있습니까? 서버의 MAC 주소를 알고있는 경우 ARP 프로토콜을 사용하여 라우터의 IP 주소를 가져올 수 있습니다. 안타깝게도 대부분의 사용자는 ARP와 같은 하위 프로토콜을 사용하는 코드를 프로그래밍하지 않았습니다. –

1

한 가지, 그럼 그냥 모든 IP 네트워크에 adresses를 통해 이동 한 다음 해당 엔드 포인트에 도달하려고합니다. 귀하의 서버 인 200을 반환하는 서버.

이 얻을 수있는 IP를, 당신이 먼저 그 위에 서브넷 마스크로 가서 마지막에 당신은 단지 다음과 같은 방법으로 갈 수있는, 자신의 IP를 얻을 필요가 조금 복잡하다 :

for (int p1 = 1; p1 < netmask[0]; p1++) { 
    for (int p2 = 1; p2 < netmask[1]; p2++) { 
     for (int p3 = 1; p3 < netmask[2]; p3++) { 
      for (int p4 = 1; p4 < netmask[3]; p4++) { 
       var ip = new IPAdress(p1, p2, p3, p4); 
       if (trytoreach(ip)) { 
        return ip; 
       } 
      } 
     } 
    } 
} 

이것은이다 네가 갈 수있는 방법. 최적화되지 않았으므로 부담없이 사용해주세요 ^^

여기에 https://gist.github.com/DerKnerd/ff9c34087955efce0970이라는 요지가 있습니다. 당신이 알아야 할 서브 네트 마스크가있는 부분. 나는 그것이 효과가 있다고 보장하지는 않는다.

+0

좋은 소리입니다. 모든 로컬 컴퓨터 IP를 가져 오는 방법이 무엇인지 말할 수 있습니까? – xmen

+0

@ xmenW.K. 업데이트를 확인하십시오. 나는 라스베리 파이에 문제가있었습니다. 나는 IP를 얻기 위해 그런 것을 사용했다. – Knerd

+0

확실하게 작동합니다. 고마워요 :) – xmen