Avatar billede MacHawk90 Nybegynder
26. marts 2010 - 11:16 Der er 10 kommentarer

test af TCP port fra ASP.NET side

Hej

jeg er ved at være på lidt dybt vand her så jeg må spørge eksperterne om hjælp.

Jeg sidder og er ved at lave en side som trækker en masse oplysninger om klienten, som offentlig ip adresse, hostname osv.

her vil jeg meget gerne have mulighed for at tjekke om et par specifikke TCP porte er åben for offentligheden.

nogle der har en ide til en måde at teste om TCP porten er åben?

På forhånd tak

//MacHawk
Avatar billede bvli Praktikant
26. marts 2010 - 12:36 #1
Kører din side i full trust?

I så fald kan du vel bare lave en tcp-connection mod den?

bool IsTcpPortOpen(string hostName, int port) {
  using (TcpClient client = new TcpClient()) {
    try {
      client.Connect(hostName, port);
      return true;
    } catch (SocketException) {
      return false;
    }
  }
}

(ej prøvet)
Avatar billede MacHawk90 Nybegynder
26. marts 2010 - 13:05 #2
hej bvli

din kode fungere fint, men kun hvis porten er forwarded til et device der også svare.

Jeg kan ikke bruge den til at tjekke en port som port 80, som jo næsten altid er åben for på klientsiden, men ikke er forwarded til en specifik host.


er der nogen måde jeg kan se om den bliver afvist ved firewallen eller om den kommer igennem der?
Avatar billede bvli Praktikant
26. marts 2010 - 13:54 #3
Uh.. Du mener om du kan komme ind bag en NAT'ed firewall? Den er nok sværere. Og kommer især også an på hvordan systemet er sat op hos klienten. Er det firewall'ens IP der er afsenderen? Er det en offentlig IP, der blot er routed gennem firewall'en osv.

Jeg tror det bliver svært - men jeg er ikke netværksekspert, så jeg vil ikke afvise noget.
Avatar billede MacHawk90 Nybegynder
26. marts 2010 - 14:29 #4
ja. det er planen siden ligges op på en offentlig hjemmeside, hvor den skal teste om der er åben for nogle porte, 9000, 9001 osv,

Afsenderen vil jo så ledes være en offentlig ip, som sender til brugerens offentlige IP.

planen er at lave en lille oversigt til brugeren om at der er åben eller lukket for port 90XX for indgående og udgående trafik.
Avatar billede bvli Praktikant
26. marts 2010 - 15:05 #5
Brugerens offentlige IP er jo som regel hans routers ip. Og den er det ret svært at komme bagom :)
Avatar billede MacHawk90 Nybegynder
26. marts 2010 - 18:33 #6
ja, men det jeg gerne vil vide er om porten er åben i routeren.
Avatar billede arne_v Ekspert
27. marts 2010 - 00:36 #7
Den postede kode bør også give en fejl hvis routeren forwarder til noget ikke eksisterende.
Avatar billede MacHawk90 Nybegynder
30. marts 2010 - 08:35 #8
det er også der min problematik ligger.

er der en måde at se om jeg bliver afvist i routeren, eller om det er fordi der ikke er en host på den anden side?
Avatar billede arne_v Ekspert
26. april 2010 - 03:03 #9
Jeg tvivler. Man forsøger at connecte til en adresse og port men man får ikke etableret connection. Hvorvidt NAT-router/firewall har afvist eller har forwardet til en host bagved som har afvidt bør være usynligt for dem udenfor.
Avatar billede arne_v Ekspert
13. juni 2010 - 05:00 #10
Tid at få afsluttet her?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester