HTTP Printing - determining where jobs are submitted from

W

wizofaus

Hello,

If you have a shared printer set up on a server that is accessed
remotedly via HTTP printing (via IIS), is there any way of either a)
determining the IP address of computers that are printing to your
printer (preferably on a job by job basis) or b) filtering which
computers are allowed to print to your printer, based on IP address?
Obviously when IIS accepts the HTTP print requests it knows the IP
address of the remote system, but I don't see any where that this
information is forwarded on to the printing subsystem. I'm quite happy
to trap it programmatically, if necessary, writing ISAPI filters if
needed.

Thanks

Dylan
 
W

wizofaus

Hello,

If you have a shared printer set up on a server that is accessed
remotedly via HTTP printing (via IIS), is there any way of either a)
determining the IP address of computers that are printing to your
printer (preferably on a job by job basis) or b) filtering which
computers are allowed to print to your printer, based on IP address?
Obviously when IIS accepts the HTTP print requests it knows the IP
address of the remote system, but I don't see any where that this
information is forwarded on to the printing subsystem. I'm quite happy
to trap it programmatically, if necessary, writing ISAPI filters if
needed.

I forgot to mention that the obvious programmatic way of checking this
is by using the GetJob API and checking the 'pMachineName' field in the
JOB_INFO_? structure.
But frustratingly this only seems to have the name of the server, not
the machine that submitted the job.

I have a bad feeling the only way I'll be able to do this is write my
own ISAPI filter (that effectively replaces msw3prt.dll), which parses
IPP requests and generates valid responses. I have the necessary info
to do this (and threw together some proof of concept code to confirm),
but I'm hoping someone knows a simpler way.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top