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