|
TCP 상태에서 클라이언트의 특별한 데이터 없이 사설망인지를 알 수 있을려나..
아마도 없을거 같은데요...
다른분들은 혹시 아실지도 모르겠지만..
소켓을 그다지 잘 아는게 아니라서...
제가 알기론 클라이언트의 접속만으로 사설인지 공인인지를 알수는 없을겁니다.
여기까지가 답변이구요
덧붙이자면 ( 다시 설명하는거지요 ㅡ_ㅡ; )
TCP상에서 사설인가 공인인가를 알아야하는 경우라면
클라이언트가 어떤때는 서버가 되서 다른 클라이언트와 통신을 할 상황이시겠죠..
처음에 말씀드린데로
서버로 클라이언트가 접속이 되면 클라이언트의 아이피를 알 수 있습니다.
이때 서버에서 추출한 클라이언트의 IP는 공인 IP가 추출되죠
- 왜냐면 적어도 공유기등의 NAT 환경이라도 하나이상의 공인IP에 물려서 통신이 되야하니까요
- 서버는 공인아이피의 접속을 추출하게 되는것입니다.
그리고 접속된 클라이언트에서 서버를 가동시킵니다.
서버에서 추출된 클라이언트의 IP로 접속을 시도해보면 이제 공인인지 사설인지를 알 수 있는거지요
접속이 되면 공인이고 접속이 되지 않으면 사설인거지요 ( 물론 사용할 포트는 같거나 이미 알고있어야겠지요 )
회사에서 사용하는 전화를 생각해보세요 ( 번호는 한둘인데 사용하는 전화는 많은 경우의.. )
회사 번호는 1234 5678번이고
내 자리의 내선 번호는 109면
1234 5678에 걸어서 109번인 사람과 연결을 부탁해야합니다.
또 회사 전화로 내 핸드폰에 전화를 걸어보면 1234 5678이 뜨지만
1234 5678로 걸면 내자리에 전화가 울리지 않지요~ ^^;;
나그네 님이 쓰신 글 :
: 답변 감사합니다.
: 이해가 잘 안가서요?? ^^;
: 서버에서 알수 있는 방법은 없을까요?
: 서버에서 클라이언트가 접속되면 체크 할 수 있는 방법은 없을까요?
:
:
:
: 수야!╋ 님이 쓰신 글 :
: : 클라이언트의 IP정보를 직접 수신받으면 알수 있게되겠지요
: :
: : Accept 받은 IP는 공유기의 IP겠지만 클라이언트에서 아이피를 추출하여 보내면 사설망 아이피를 받으면 사설겠네요
: :
: : 방법이 모호하면 클라이언트에 서버를 가동하고 원래 서버에 접속된 아이피를 추출하여 접속하여
: :
: : 커넥되면 공인, 커넥이 안되면 비공인이겠네요
: :
: : 이외에도 다른 방법들이 많이 있을거 같네요
: :
: : 정석으로 알아내는 방법은 무엇인지 저도 잘 모르겠습니다.
: :
: : 저 방법들이 정석인지도 모르겠구요 ^^
: :
: : 수고하세요~
: :
: : 나그네 님이 쓰신 글 :
: : : 접속된 클라이언트가 공용망인지 사설망인지...
: : :
: : : 질문 그대로 접속된 클라이언트가 공용망인지 사설망인지 알 수 없나요?
: : :
: : : Indy 서버 Indy 클라이언트 소켓을 쓰고요
: : :
: : : IdTCPServer
: : : IdTCPClient
: : :
: : : 알 수 있는지요?
|