Q: 我们公司通过交换机与路由器连接,由路由器拨号,不知能不能取得每次ADSL拨号上网的动态IP?
A1: 用反射吧.
访问一下能显示IP的网页,
如:http://goboyy.51.net/showip.php
编程取得其内容,读取里面的数据就可以了.
A2:
const char* GetOutAddr(SOCKET hSocket, LPCTSTR pszTargetAddr = "www.csdn.net")
{
DWORD dwBytesReturned = 0;
struct sockaddr_in saTarget;
struct sockaddr_in saSource;
memset(&saSource, 0, socksize);
memset(&saTarget, 0, socksize);
saTarget.sin_family = saSource.sin_family = AF_INET;
saTarget.sin_addr.s_addr = GetNetAddr(pszTargetAddr);
WSAIoctl(hSocket, SIO_ROUTING_INTERFACE_QUERY, (LPVOID)&saTarget,
sizeof(sockaddr_in), (LPVOID)&saSource, sizeof(sockaddr_in),
&dwBytesReturned, NULL, NULL);
return ntoa(saSource.sin_addr);
}