Reading the client IP address in RESTfull web service

Is it possible to read the IP address of the client accessing a RESTfull webservice built in LV? For example, one might want to identify users from local IP addresses and output different information.
CLD (2014)
Solved!
Go to Solution.

InfiniteNothing,
Allright, I think I've found somthing.
Among the Web Wervices VIs, there is a VI called Read Request Variable. One of the variables that you can read is Remote Address and I think this will give you the IP Address. To use these VIs you'll have to use the streaming method of getting data instead of reading terminals (as the example does).
I hope this helps!
Ben Sisney
FlexRIO V&V Engineer
National Instruments

Similar Messages

  • How to retrieve the client IP address when Apache acts as a proxy for Tomca

    Hello,
    I am trying to retrieve the client IP address accessing the web
    services. Because Apache is our proxy for all requests, when I try to
    retrieve the client IP I always get the localhost IP: 127.0.0.1
    The following code returns the localhost IP:
    MessageContext msgContext = MessageContext.getCurrentContext();
    if(msgContext != null) {
    return msgContext.getProperty(Constants.MC_REMOTE_ADDR).toString();
    return "Unknown";
    From a servlet, obtaining the client IP address can be achieved using
    this code.
    String ipAddress = request.getHeader("x-forwarded-for");
    if (ipAddress == null) {
    ipAddress = request.getHeader("X_FORWARDED_FOR");
    if (ipAddress == null){
    ipAddress = request.getRemoteAddr();
    return IPaddress ;
    Any help is greatly appreciated.
    Thank you very much

    @ejp....
    thanks buddy....
    u made my world a better place to live.....

  • I am automating the process of sending appointment reminders to my clients. I started with an alert with an email in calendar using the clients email address as a custom entry in my me card in my contacts. this was resulting in three emails being sent wit

    I am automating the process of sending appointment reminders to my clients. I started with an alert with an email in calendar using the clients email address as a custom entry in my me card in my contacts. this was resulting in three emails being sent with slightly different versions of the same address (see my previous post). Heating someone else's suggestion I created a workflow file to send an email and calling that file from an alert on my calendar. This is working and sends only one email to the client.
    My calendar is on I cloud and I access it from three different computers so I can keep my appointment calendar current. The files that send the email only exist on one computer. My other computers show error messages when those emails get sent. It seems that each computer wants to send the email. It's a small problem but is there a way that I could not get those alerts.
    But appreciate any thoughts about this. It seems like both problems might be related to the iCloud system.
    Thank you in advance,
    Michael

    Good work, catch so far Michael, does seem to be a "feature" of iCloud syncing, not sure what you could do to disable it.

  • UNABLE TO RETRIEVE THE CLIENT IP ADDRESS AND HOST NAME OF A PORTAL USER

    I'm trying to retrive the client IP address and host name of a portal user
    trying to access a portal page using APIs:
    PortletRenderRequest portletRequest =
    (PortletRenderRequest)request.getAttribute(HttpCommonConstants.PORTLET_RENDER_REQUEST);
    HttpServletRequest servletRequest =
    (HttpServletRequest)portletRequest.getAttribute(HttpCommonConstants.SERVLET_REQUEST);
    String l_szClientIPAddress = servletRequest.getRemoteAddr();
    String l_szClientHost = servletRequest.getRemoteHost();
    but i found that for all portal users on different machines IP addresses, the
    returned IP is the same for all which is Portal middle tier IP address.
    So how can retrive the IP addess of a portal user trying to access a portal
    page ?

    Brijesh,
    Do you mean how to see hostname/ip address of client requests processed by the server? If yes, depending on what's your front ending component - Web Cache or OHS, you can configure the access log format to have this information recorded in either of these component's access log file.
    For Web Cache access log file, refer this:
    http://download.oracle.com/docs/cd/B14099_19/caching.1012/b14046/diagnostics.htm#sthref2090
    For OHS access log file, refer this:
    http://download.oracle.com/docs/cd/B14099_19/web.1012/b14007/servlog.htm#sthref439
    By default, both Web Cache and OHS are configured to use Common Log Format (CLF) that does record hostname/ip address so if you haven't made any changes to log format, this info is already there for you. Look for $ORACLE_HOME/webcache/logs/access_log file for Web Cache and $ORACLE_HOME/Apache/Apache/logs/access_log file for OHS.
    Thanks
    Shail

  • How to print the client ip address at the server side( reqd for logging )??

    Hello everybody...
    joined this forum recently.....
    In RMI programming.... is there any way by which the server can know the the Client ip address or machine name.... i want to know this bcoz i need to create a log file as to who all had connected withe the server..
    need a solution soon..... thanks in advance....

    @ejp....
    thanks buddy....
    u made my world a better place to live.....

  • Get the client IP address

    Hello everybody, I'm a student new with java, I'm developing a little server application - running standalone, and I'm trying to get the client Ip address, have a look on my code snippet:
    InetAddress fromcli;
    while(true){
    welcomeSKT.accept()
    fromcli = welcomeSKT.getInetAddress();
    System.out.println("The client Ip Address is: " + fromcli.getHostAddress() + '\n');
    The sysout println returns the 0.0.0.0 that is the server address, mapped to more than one interface eg:(loopback and eth0) - But if with the getInetAddress() method I get the server address where is the difference with the getLocalHost()? - By the way, anyone has a suggestion to print out the client remote address.
    Thank you in advance....
    Jeppojeps
    Edited by: jeppojeps on Mar 24, 2008 3:36 AM

    Oh, sorry of course welcomeSKT is a ServerSocket, actually the snippet that I put is a part of the code, here below I put the complete program, in order to clarify my question, however I would like to know if it's possible to understand from the server side the client IP address, and if yes how...
    Thank you in advance...
    * THIS simple TCP server receives some numbers in input by the client and give back the sum - actually the exceptions are managed in a uncomplete way....but this is my first java program...be patient with me...
    * @jeppojeps
    * @0.1
    import java.io.*;
    import java.net.*;
    public class ServerTCP
    // instance variables - replace the example below with your own
    public static void main(String[] args) throws Exception
    String clientSentence;
    String capitalized;
    InetAddress fromcli;
    String clientIp;
    String portIp;
    int z=0;
    int port=0;
    if (args.length == 0 ){
    System.out.println("Usage: ServerTCP lport" + '\n');
    System.exit(-1);
    else
    port = Integer.parseInt(args[0]);
    if(port <= 1024) {
    System.out.println("Remember dude, only root can use a portnumber < 1024" + '\n');
    else{
    ServerSocket welcomeSKT = new ServerSocket(port);
    System.out.println("Server instance started:" + '\n');
    while(true){
    Socket connectionSocket = welcomeSKT.accept();
    BufferedReader InfromClient = new BufferedReader (new
    InputStreamReader(connectionSocket.getInputStream()));
    DataOutputStream outToClient =
    new DataOutputStream(connectionSocket.getOutputStream());
    outToClient.writeBytes("Hello give me some numbers and I'll give you the sum" + '\n');
    fromcli = welcomeSKT.getInetAddress();
    System.out.println("The client Ip Address is: " + fromcli.getHostAddress() + '\n');
    clientSentence = InfromClient.readLine();
    for(int i = 0 ; i < clientSentence.length() ; i++) {
    try {
    Character c = new Character(clientSentence.charAt(i));
    capitalized = c.toString();
    int x = Integer.parseInt(capitalized);
    System.out.println("Number digited from the client: " + x + '\n');
    z+=x;
    catch(NumberFormatException nfe) {
    System.out.println("Text: " + clientSentence.charAt(i));
    capitalized = Integer.toString(z);
    outToClient.writeBytes("The sum of the given number is: " + capitalized + '\n');
    welcomeSKT.close();
    }

  • Get the clients IP Address

    I'm sure this is a quick one, but not an easy one to guess.....I just want to read my clients ip address in the java when a page is called/refresh....ideas? thanks

    The remote address can be found in the request:
    javax.servlet.http.HttpServletRequest rq = (javax.servlet.http.HttpServletRequest) getExternalContext().getRequest();
    String strIP = rq.getRemoteAddr(); just add this snippet in your prerender method.

  • How can I get the client IP address correctly?

    Hi,
    I am having a problem with getting the client ip address correctly using jsp. I am currently using the method request.getRemoteAddr() (JSP)to get the remote client IP. This method works fine with intranet addresses.
    However, when I am using a dial-up connection through a ISP (internet service provider), it could not detect the actual IP that is assigned to my client PC, but instead got another IP address.
    Could anyone advise me on that? And could anyone advise me on how to obtain the correct client ip address correctly using any of the java technologies?
    Thanks,
    Damien

    >
    I don't believe so. You can't establish aconnection
    over the internet using a private IP. As far as I
    know most, if not all routers, block them so itwon't
    even move over the backbone.Well with port-mapping it is definately possible to
    allow an external ip to "connect" to an internal ip, i
    have done this very thing myself...Not the same.
    You are addressing the external server with a public IP address. That is then translated into the internal connection.
    That is not the same as using a private IP on the internet.
    As I said, the backbone will not let a private IP through.
    >
    >
    Yes, but my point is that at any given time, in the
    world, many boxes might have one address. Even ifit
    is a private IP is it still that IP for aparticular
    box. So if you use java to get its IP that is theIP
    that it gets. And that IP is useless for anything
    unless that IP is meaningful for the othercomputer.
    But all ips must be unique in a designated "internet"
    be it an "intranet" or whatever, there cannot be a
    situation where two identical ips in the same
    "internet", such that an ip that is achieved from a
    page-hit is valid and meangingful in order to send the
    data it is requesting back to it, or find out more
    about that computer, or log and report it if it is
    doing something illegal; i don't think its that
    meangingless is it?Yes it is. You can't use an IP to uniquely identify a box, and that is the sole criteria, when there might be two boxes with the same IP.
    When you use java on a client box to get the IP of the box, it doesn't necessarily return an IP that it meaningful to the anyone outside the lan on which the box lives.
    Because of this internet systems must do one of the following:
    -Do not use the IP as an identifier.
    -Require that the client has a public IP. This is often static. At least some security systems use this to validate users.

  • How do I pick up the attachment from the client's machine, in a web-based

    Hi Friends,
    I just wanted some help from u all.
    How do I pick up the attachment from the client's machine, in a web-based email system?
    I have done a prog. where a file attachment can be done sitting on the server machine...but not on the client.
    Thank u .
    do mail me to [email protected]

    use the input type file tag in html page and get connected to some of your servlet and then open the streams to read the file byte by byte.

  • Retrieving client ip from RPC-style web service

    Hi,
    I've got an rpc-style web service and I would like to log the incoming client
    ip address (i.e. I need to get at the HTTPRequest object). Can this be done by
    passing some kind of SOAP context parameter in the argument list of my exposed
    methods? If this is not doable, is implementing SOAP message handlers the way
    to to go? I would rather not do the latter, as the web service is working well
    and don't want to play with my code too much.
    Thanks

    I tried this, following the example in http://e-docs.bea.com/wls/docs70/webapp/filters.html,
    but I still can't get it to work. The init() method gets called, but doFilter(ServletRequest
    req, ServletResponse resp, FilterChain fc) does not. The "filter" part of my
    web.xml looks like:
    <filter>
    <filter-name>serviceFilter</filter-name>
    <filter-class>webservices.ServiceFilterImpl</filter-class>
    </filter>
    <filter-mapping>
    <filter-name>serviceFilter</filter-name>
    <url-pattern>/myPattern/myWebService</url-pattern>
    </filter-mapping>
    The only thing I could thing of is that maybe my url-pattern is wrong, although
    this seems unlikely as my web service is able to process requests sent using
    http://myWLSMachine:7001/myPattern/myWebService.
    In fact, in the the WLS access.log file, I have:
    [07/Oct/2002:11:51:01 -0400] "POST /myPattern/myWebService HTTP/1.0" 200 3011.
    Do you know if there's something in the JAX-RPC API that I could use to get at
    the client ip address? I dug through the documentation and came across something
    called "ServletEndpointContext", but I'm not sure if this will do the trick.
    Thanks for your time,
    Danielle
    "manoj cheenath" <[email protected]> wrote:
    One way to do this may be to write a servlet filter
    and map the filter to the URL of your service.
    regards,
    -manoj
    "Danielle Vella" <[email protected]> wrote in message
    news:[email protected]..
    Hi,
    I've got an rpc-style web service and I would like to log the incomingclient
    ip address (i.e. I need to get at the HTTPRequest object). Can thisbe
    done by
    passing some kind of SOAP context parameter in the argument list ofmy
    exposed
    methods? If this is not doable, is implementing SOAP message handlersthe
    way
    to to go? I would rather not do the latter, as the web service isworking
    well
    and don't want to play with my code too much.
    Thanks

  • The Managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started. Please Contact your Administrator.

    Hi,
    I'm not able to access the term store. I get an below mentioned error.
    "The Managed Metadata Service or Connection is currently not available. The Application Pool or Managed Metadata Web Service may not have been started. Please Contact your Administrator. "
    Since this is happening on my local machine (Dev environment). I have full control on the term store and the all the site collections.
    Hence, this is not a permission issue.
    I have checked, the Metadata service is active on the machine. All the application pools in IIS is running.
    After reading one of the recommendation on internet, I created a new Managed Metadata Service.
    After which I was able access both (old and new) MMS from Central Admin only (highlight the MMS from manage service applications and click Manage ) and not from the site collection (term store management).
    Now again its not working after I did an IISRESET.
    The managed metadata service (Managed Metadata Service Connection) is grayed out.
    ULS Error says:
    Failed to create ManageLink for service proxy 'Managed Metadata Service'. Exception: System.TimeoutException: The request channel timed out attempting to send after 00:00:09.9999999. Increase the timeout value passed to the call to Request or increase the SendTimeout
    value on the Binding. The time allotted to this operation may have been a portion of a longer timeout. ---> System.TimeoutException: The HTTP request to 'http://mitkar4:32843/7a91ec90b46843e995c144be48d804f0/MetadataWebService.svc' has exceeded the allotted
    timeout of 00:00:09.9990000. The time allotted to this operation may have been a portion of a longer timeout. ---> System.Net.WebException: The operation has timed out 
    Please let me know if you need more information.

    Hi Victoria,
    Thanks for your reply
    I tried making all the changes you had recommended and which are mentioned in the link you have provided.
    I tried making all possible combination of changes to the web.config and client.config files but it does not make any difference to the environment.
    One thing is that, my error in ULS logs has changed.
    Error 1: 
    Exception returned from back end service. System.TimeoutException: The request channel timed out attempting to send after 00:00:09.9999999. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted
    to this operation may have been a portion of a longer timeout. ---> System.TimeoutException: The HTTP request to 'http://mitkar4:32843/b1640facdf8b49b0886fea1bd37b8eb3/MetadataWebService.svc' has exceeded the allotted timeout of 00:00:09.9990000. The time
    allotted to this operation may have been a portion of a longer timeout. ---> System.Net.WebException: The operation has timed out 
        at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 
        at System.Net.HttpWebRequest.GetRequestStream() 
        at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()     --- End of inner exception stack trace --- 
        at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() 
        at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) 
        at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)     --- End of inner exception stack trace ---    Server stack trace:  
        at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)     at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
        at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
        at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown at [0]:  
        at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
        at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
        at Microsoft.SharePoint.Taxonomy.IMetadataWebServiceApplication.GetServiceSettings(Guid rawPartitionId) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.<>c__DisplayClass2f.<ReadApplicationSettings>b__2e(IMetadataWebServiceApplication serviceApplication) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.<>c__DisplayClass2c.<RunOnChannel>b__2b()
    Error 2:
    Error encountered in background cache check System.TimeoutException: The request channel timed out attempting to send after 00:00:09.9999999. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time
    allotted to this operation may have been a portion of a longer timeout. ---> System.TimeoutException: The HTTP request to 'http://mitkar4:32843/b1640facdf8b49b0886fea1bd37b8eb3/MetadataWebService.svc' has exceeded the allotted timeout of 00:00:09.9990000.
    The time allotted to this operation may have been a portion of a longer timeout. ---> System.Net.WebException: The operation has timed out 
        at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) 
        at System.Net.HttpWebRequest.GetRequestStream() 
        at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream()     --- End of inner exception stack trace --- 
        at System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream() 
        at System.ServiceModel.Channels.HttpOutput.Send(TimeSpan timeout) 
        at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.SendRequest(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)     --- End of inner exception stack trace ---    Server stack trace:  
        at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.SecurityChannelFactory`1.SecurityRequestChannel.Request(Message message, TimeSpan timeout)     at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) 
        at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout) 
        at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 
        at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)    Exception rethrown at [0]:  
        at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) 
        at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 
        at Microsoft.SharePoint.Taxonomy.IMetadataWebServiceApplication.GetServiceSettings(Guid rawPartitionId) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.<>c__DisplayClass2f.<ReadApplicationSettings>b__2e(IMetadataWebServiceApplication serviceApplication) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.<>c__DisplayClass2c.<RunOnChannel>b__2b() 
        at Microsoft.Office.Server.Security.SecurityContext.RunAsProcess(CodeToRunElevated secureCode) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.<>c__DisplayClass2c.<RunOnChannel>b__2a() 
        at Microsoft.Office.Server.Utilities.MonitoredScopeWrapper.RunWithMonitoredScope(Action code) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.RunOnChannel(CodeToRun codeToRun, Double operationTimeoutFactor) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.ReadApplicationSettings(Guid rawPartitionId) 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.get_ServiceApplicationSettings() 
        at Microsoft.SharePoint.Taxonomy.MetadataWebServiceApplicationProxy.TimeToCheckForUpdates() 
        at Microsoft.SharePoint.Taxonomy.Internal.TaxonomyCache.CheckForChanges() 
        at Microsoft.SharePoint.Taxonomy.Internal.TaxonomyCache.<LoopForChanges>b__0().

  • Restfull Web Services

    Everything is great about netbeans once you can start with it, I dont even remember how many days it has been that I am trying to deploy this hello world restfull web service with NB6.0.
    I am constantly getting the following error while building
    E:\JavaIDEs\NetBeans\Projects\OneThingThatWorks\nbproject\build-impl.xml:313: taskdef class com.sun.ws.rest.tools.ant.RestBeansProcessorTask cannot be found
    Please someone tell me, what library is missing that is producing this error.
    Thanks in advance

    Hi ,
    I just tried the HelloWorld RESTful webservice. It worked fine for me. Could you please check if you have installed the RESTful web services module.
    Use the Plugin Manager under the Tools menu to install the RESTful Web Services module, which will also install the RESTful Web Service Libraries module and the RESTful Web Service Support module.
    Radhika

  • How to print SOAP request at client program when program calls web service.

    Hi friends,
    While calling a web service, I am getting following error: javax.xml.rpc.JAXRPCException: Failed to parse WSDL
    I believe it is due to an invalid parameter set for the request soap. I need to analysis this error. Can you help me to print SOAP request at client program when program calls web service.
    Is there any way to print SOAP request XML?
    Thanks.
    Jaykishan

    Is this question related to Oracle SOA suite? Which client are you using? Use SOAPUI to validate whether WSDL is correct.
    Regards,
    Anuj

  • What is the difference between RFC vs. Web service ?

    What is the difference between RFC vs. Web service ?

    Hi,
    Remote Function Call (RFC) is the standard SAP interface for communication between SAP systems. RFC calls a function to be executed in a remote system.
    http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5b6a85b11d6b28500508b5d5211/content.htm
    A 'Web service' (also Web Service) is defined by the W3C as "a software system designed to support interoperable machine-to-machine interaction over a network". Web services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.
    Regards,
    Neenu Jose.

  • How to get the report description from obiee's web services (web catalog)?

    I am trying to get the Description from the properties of a report (using web services + web catalog). I am not able to retrieve the description through the itemProperties[] array, and have not been successful finding it anywhere else. Has anyone been able to get the this Description property? Thanks.

    hi,
    are you looking for table name,column name,subject area,created time for a specific report/request ?
    IF yes we can do this using Catalog manager
    Open Catalog Manager-->tools-->Create Report
    thanks,
    saichand.v

Maybe you are looking for