#include <netdb.h>
#include <netinet/in.h>
#include <string.h>
+#include <sys/ioctl.h>
+#include <net/if.h>
#define LISTEN_PORT 2156
i.c = (mid & 0x0000ff00) >> 8;
i.d = mid & 0x000000ff;
sprintf(ptr, "%d.%d.%d.%d", i.a, i.b, i.c, i.d);
+#ifdef DEBUG
+ printf("DEBUG-> midtoIP() mid = %d.%d.%d.%d\n", i.a, i.b, i.c, i.d);
+#endif
return;
}
close(tmpsd);
return 0;
}
+
+unsigned int getMyIpAddr(const char *interfaceStr)
+{
+ int sock;
+ struct ifreq interfaceInfo;
+ struct sockaddr_in *myAddr = (struct sockaddr_in *)&interfaceInfo.ifr_addr;
+
+ memset(&interfaceInfo, 0, sizeof(struct ifreq));
+
+ if((sock = socket(AF_INET, SOCK_STREAM, 0)) < 0)
+ {
+ perror("getMyIpAddr():socket()");
+ return 1;
+ }
+
+ strcpy(interfaceInfo.ifr_name, interfaceStr);
+ myAddr->sin_family = AF_INET;
+
+ if(ioctl(sock, SIOCGIFADDR, &interfaceInfo) != 0)
+ {
+ perror("getMyIpAddr():ioctl()");
+ return 1;
+ }
+
+ close(sock);
+
+ return ntohl(myAddr->sin_addr.s_addr);
+}
+
/*
main() {
unsigned int mid;