Solved

vb.net passive tcp port monitoring of another application

Posted on 2010-09-22
3
1,785 Views
Last Modified: 2012-05-10
I have a vendor-provided VoIP contact center application.  There is a softphone installed on the local PC which communicates with a CTI server application.  The CTI server is accessed via a constant IP address and port.  The port used on the local PC is dynamically assigned.

Using Wireshark, I have documented all of the XML command/responses that occur between the softphone and the CTI application.  What I am trying to do is to reverse-engineer a passive API that sits on the local PC and monitors this softphone-CTI server traffic.  I intend to use this information to record events and drive activities in our CRM application.

I've created a vb.net application that can monitor a port and capture the activity.  The problem is that although I am communicating to the CTI application using a fixed server port, the local TCP port is dynamic, so I don't know which port to listen to.  It is this local port that initiates the conversation.

Is there a way to passively monitor all active ports for traffic going TO a specific IP/port and then use that to determine which local port to monitor for outgoing/incoming traffic?

Thanks.
0
Comment
Question by:asrobins
  • 2
3 Comments
 
LVL 5

Accepted Solution

by:
andr_gin earned 500 total points
ID: 33742234
Version1:
You can use WinPcap that is used in Wireshark directly.
http://www.codeproject.com/KB/IP/dotnetwinpcap.aspx

Then you can log all packets that are Ethernet packets and IP packets and tcp packets and go from your computer of any port to a specific computer of a specific port.

Only combining the tcp packets to a continous stream may be complicated.

Version2:
You can build a simple proxy. You listen on the specific port and forward traffic to the same port on the other computer. Then you change the ip of the program on your pc to your local IP.
0
 
LVL 1

Author Closing Comment

by:asrobins
ID: 33768900
Building a simple proxy is a good solution.  Unfortunately, aynchronous socket programming is not altogether that simple!
0
 
LVL 5

Expert Comment

by:andr_gin
ID: 33770010
1.) You can check TcpClient.Available to see, if there is data available in the buffer to read:

Do
    If ClientTcpClient.Available>0 Then
        BytesRead = ClientStream.Read(Buffer,0,Buffersize)
        ServerStream.Write(Buffer,0,BytesRead )
   EndIf
   If ServerTcpClient.Available>0 Then
        BytesRead = ServerStream.Read(Buffer,0,Buffersize)
        ClientStream.Write(Buffer,0,BytesRead )
   EndIf
Loop

2.) Dont try to read and write the same TcpClient/Networkstream in two threads at the same time. This will cause an error.
0

Featured Post

Create the perfect environment for any meeting

You might have a modern environment with all sorts of high-tech equipment, but what makes it worthwhile is how you seamlessly bring together the presentation with audio, video and lighting. The ATEN Control System provides integrated control and system automation.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A while ago, I was working on a Windows Forms application and I needed a special label control with reflection (glass) effect to show some titles in a stylish way. I've always enjoyed working with graphics, but it's never too clever to re-invent …
Introduction When many people think of the WebBrowser (http://msdn.microsoft.com/en-us/library/2te2y1x6%28v=VS.85%29.aspx) control, they immediately think of a control which allows the viewing and navigation of web pages. While this is true, it's a…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question