Problem s inetd - REMOTEHOST promenna
Radek Krejča
radek.krejca at starnet.cz
Thu Apr 18 07:11:28 CEST 2013
> Radek Krejča wrote:
> > Ted je otazkou, jestli jde nejak pres inetd dostat do spousteneho scriptu
> adresu klienta, nebo ne.
>
> stdin je spojeni od klienta. Ziskat o nem informace je otazkou volani
> getpeername(...). Jestli existuje uz hotovy program ktery tu funkci
> zavola a vysledek ti zpristupni jsem nezkoumal (ani zda to nahodou nejak
> nedela uz sam sh), ale v nejhorsim si ten desetiratkovy zdrojak, ktery
> to udela budes muset spichnout ...
Ahoj, spichnul jsem, ale mam problem, ze kdyz volam ten muj programek primo, tak mi ip adresu klienta ziska, ale kdyz provedu presmerovani z pf promoci rdr, tak uz ne. Funkce pro ziskani vypada takto:
int Getpeerinfo (int sock,char **IP)
{
struct sockaddr_in peer;
int porto;
socklen_t peer_len;
peer_len = sizeof(peer);
if (getpeername(sock, (struct sockaddr*)&peer, &peer_len) == -1) {
error("getpeername() failed");
return -1;
}
*IP= (char *)malloc(strlen((char *)(inet_ntoa(peer.sin_addr))) + 1);
strcpy(*IP,(char *)(inet_ntoa(peer.sin_addr)));
porto=(int)(peer.sin_port);
return 0 ;
}
A radek v pf....
rdr proto tcp from 192.168.255.2 to any port 8009 -> 127.0.0.1 port 9000
Radek
More information about the Users-l
mailing list