1) connect TOR through socks port(localhost:9050 default) from your c# application (TCP/IP)
2) Negotiate with TOR SOCKS( read https://www.ietf.org/rfc/rfc1928.txt carefully).
Here is a simple c code .hope this will help..
############################################################
//Create socket for client.
    sockfd = socket(PF_INET, SOCK_STREAM, 0);
    if (sockfd == -1) {
        perror("Socket create failed.\n") ;
        return -1 ;
    }

    //Name the socket as agreed with server.
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = inet_addr("127.0.0.1");
    address.sin_port = htons(9050);
    len = sizeof(address);

    result = connect(sockfd, (struct sockaddr *)&address, len);
//#######################################STEP1 DONE#######################
char buf[1024];
send(sockfd,"\x05\x01\x00",3,0);   // \x05= SOCKS5, \x01=NEXT BYTE LENGTH,\x00= NO AUTHENTICATION

int bytes_recv = recv(sockfd, buf,sizeof(buf),0);
if ((buf[0] != 5) || buf[1] == 0xFF)
{
  return 1;
}
//####################################NEGOTIATION 1 DONE###############
      \\05=SOCKS5,01=CONNECT,00=reserved,03=DOMAIN,
      \\ \x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\x65\x2e\x63\x6f\x6d = www.google.com
      \\ \x00\x50 == port(80)

       send(sockfd,"\x05\x01\x00\x03\x0e\x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\x65\x2e\x63\x6f\x6d\x00\x50",21,0);
bytes_recv = recv(sockfd, buf,sizeof(buf),0);
//####################################NEGOTIATION 2 DONE ################
char request[1024] = "GET / HTTP/1.1\r\nHost: www.google.com\r\n\r\n";

send(sockfd,request,sizeof(request),0);
  
int bytes_recieved =0;
bytes_recieved = recv(sockfd, buf, 1024, 0);
buf[bytes_recieved] = '\0';
cout<<buf<<endl;
############################### SENDING HTTP GET AND GETTING HEADER AS ANSWER #####

On Mon, Dec 15, 2014 at 4:51 PM, Hollow Quincy <hollow.quincy@gmail.com> wrote:
Hi all,

I would like to write a C# application (IRC client) that is using TOR.
I read a lot, but I still don't know how can I run TOR proxy in
transparent way (from my c# code).

I see that Tor Stem (https://stem.torproject.org/) can be used by
Python code or there are packages for Linux, but not C# (.NET).

How can I run Tor proxy from C# ? Is there a library (dll) that I can
run ? (without need to have open Tor Bundle browser).

Thanks for help
_______________________________________________
tor-dev mailing list
tor-dev@lists.torproject.org
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev