로그인 유지
제가 지금 사용하고 있는 보드는 au1200이구요
보드의 ip주소를 pc로 보낼 방법을 좀 알고 싶습니다.
보드의 ip를 dhcp서버를 통해 유동으로 받고 있는데
그 보드들의 ip주소를 pc로 보내서 웹 페이지에 표시하고 싶거든요
ip주소 등을 보낼 수 있는 방법을 좀 알려 주세요 부탁드립니다!!
dhcp서버 웹서버 등은 다 올려서 테스트 해 보았구요 보드의 ip를 받기 위해 삽질중입니다!!
좋은 답변 부탁드립니다!!
보드의 IP를 서버로 전송하실 때 TCP/IP를 이용하신다면 PC쪽이 서버 소켓을 두실 것으로 생각됩니다.
그렇다면 서버에 접속하기만 하면 서버에서는 클라이언트, 즉 보드의 IP를 구하실 수 있습니다.
즉, 서버에서 accept() 함수로 클라이언트와 연결이 되면 클라이언트 정보를 스트럭쳐로 제공하는데,
제공되어 반환되는 정보 중에 addr.sin_addr 값을 inet_ntoa() 를 이용하시면 클라이언트의 IP를 구하실 수 있습니다.
제가 사용하는 코드를 적겠습니다.
fd = accept( _server->fd, (struct sockaddr *)&_client->addr, &sz_client_addr);
sprintf( pclient_ip, "%s", inet_ntoa( _client->addr.sin_addr));
그래서 EZ보드에서는 서버에 접속을 시도하고 접속 확인이되면 IP를 전송할 필요없이 접속을 끊으시면 됩니다.
inet_ntoa() 함수에 대한 자세한 내용은 http://forum.falinux.com/zbxe/?document_srl=406894 중간에 자세히 나옵니다.
참고하세요. ^^
보드의 IP를 서버로 전송하실 때 TCP/IP를 이용하신다면 PC쪽이 서버 소켓을 두실 것으로 생각됩니다.
그렇다면 서버에 접속하기만 하면 서버에서는 클라이언트, 즉 보드의 IP를 구하실 수 있습니다.
즉, 서버에서 accept() 함수로 클라이언트와 연결이 되면 클라이언트 정보를 스트럭쳐로 제공하는데,
제공되어 반환되는 정보 중에 addr.sin_addr 값을 inet_ntoa() 를 이용하시면 클라이언트의 IP를 구하실 수 있습니다.
제가 사용하는 코드를 적겠습니다.
fd = accept( _server->fd,
(struct sockaddr *)&_client->addr,
&sz_client_addr);
sprintf( pclient_ip, "%s", inet_ntoa( _client->addr.sin_addr));
그래서 EZ보드에서는 서버에 접속을 시도하고 접속 확인이되면 IP를 전송할 필요없이 접속을 끊으시면 됩니다.
inet_ntoa() 함수에 대한 자세한 내용은 http://forum.falinux.com/zbxe/?document_srl=406894 중간에 자세히 나옵니다.
참고하세요. ^^