Linking online network server between software and application without web - ios

I'm trying to make my network server online and link it to a system and an application that I designed. However I don't want to make a website to upload the server to. Is this possible? Can I link my server directly to my software and my application via the internet? Thanks.

You can connect to servers with out the world wide web.
Their is for example the Gropher protocol.
Most likely this is not what you are looking for.
If you want to reach your server from the outside you need a public IP address. Your internet provider has to give you one. You could get around this, if you know someone with a public IP who accepts to forward your traffic.

Related

How can I use a client's IP Address for a request to another website?

I am trying to build an web app, where a client logs in and wants to send some data to another website (for example he wants to upload a csv file that the application will read and send the read data to the other website).
The website does not have an official API which I can use and they block an IP Address if it is making too many requests.
So, my idea was to use the user's IP Address to send the request in his name so that the website will not block my app from making requests.
It is possible to do this from asp .net core mvc / asp.net mvc?
If not, what can I do to make this possible?
Thanks in advance
No, this is not possible. I would encourage you to actually read up on the TCP/IP protocol (HTTP, too, while you're at it, though it doesn't directly relate to this issue). Just like you would need to understand how something like iOS works before you could write apps for it, you should not how the underlying protocols of the Internet work, if you intend to write web apps.
In particular here, all communication over TCP/IP is by IP address. It is necessarily unique because the client/server needs to be able to "address" its packets there. Based on this, even if you could impersonate the user's IP address, the result would be the server sending its response directly to the user, instead of your server.
FWIW, there is a concept of "shared" IP addresses. For example, unless you have a dedicated IP from your ISP, you along with a lot of its other customers will appear as if you all have the IP address. IP addresses are traditionally limited. IPv6 is virtually limitless, but most everything still uses IPv4, which only exposes a range of ~4 trillion addresses. That may sound like a lot, until you realize that every single client needs a unique address. Just one person likely has a home computer, a work computer, a laptop, a smartphone and perhaps even a second business smartphone. Additionally they could have a range of other devices like a tablet, smart TV, connected thermostat, etc. As a result, your ISP essentially proxies your request to the destination and it then receives the response and forwards it on to you. It uses its internal IP tables to route the response back to the internal IP that requested it. So, while it's technically possible for multiple clients/servers to share the same external IP, it is not the same as what you're talking about here.

Accessing a website on private network

I developed a NodeJS web application meant to be accessed on a private wifi network.
My goal is to have users connect to my server hosted on Ubuntu 14.04LTS, on which I setted up a Wifi hotspot.
The users connect to the wifi network with mobile devices, and then go with their browser to
http://my.server.local.ip/
What is the easiest way to set up a DNS (or something else) so that they are able to browse to a human readable URL instead of my IP ?
Sorry if the question has been answered before, I am a beginner in network configuration and I may not search the good keywords.
Thanks for reading
EDIT:
I forgot to mention that my network provides no access to Internet. I already own a domain for this app, but for the online-version of it. My goal is to build a portable server machine which can serve the application to mobiles on bad Internet coverage areas.
This depends on which machine acts as the DNS-server for your network. Does your Server/WiFi-AP just redirect/bridge the traffic to an ethernet-port and the DHCP-requests from the mobile devices are answered by another device (router-box?) in your network? In that case, that box will also be the DNS-server the mobile devices will be querying for hostname resolution. Maybe you can configure a static IP and hostname for your Ubuntu-server in the router's web interface.
Otherwise, you can set up a DHCP and/or DNS-server on the Ubuntu-machine. A lightweight tool for this job is DNSmasq (http://www.thekelleys.org.uk/dnsmasq/doc.html). This seems to be what you want, reading your latest comment. Configure a static IP address for the server-machine's WiFi-Interface and configure your DNS-server running on the Ubuntu-machine to map the hostname/domain of your choice to that IP. Then the mobile devices can access the website delivered by the Ubuntu machine by using that domain name.

smtp4dev - access from remote computer

Is it possible to access smtp4dev from a remote computer. I am using smtp4dev locally for development so that I can view emails as my ASP.NET MVC 3 application sends them out. It would nice to be able to do the same one a testing server with the ability for me or a colleage to view messages being generated on that remote testing server.
If smtp4dev can't do it are there any other tools that can? I know it is possible to output files to a share via ASP.NET configuration, but I find smtp4dev to be a much more user friendly experience...
It sounds like you need to access you local smtp4dev service from a hosted instance of your project. You have several options:
Personally, I use a gmail account for doing this - you're limited to 100 emails per day.
Port forward your local smtp4dev service - find the IP address of the computer it's runnning on, the port the service operates on (SMTP port), go to your router and add the port forwarding rule / Virtual Server. It's possible that smtp4dev only bind to the loopback interface, in which case port forwarding won't work. You should also make sure the firewall exception is added for the port or program.
Your hosting might already have an SMTP server you can use
You could use a public SMTP server - mail.{someisp}.com
In any case, if you're a bit more specific, we will be able to help you further.

how to restrict a web portal to a particular computer?

I am in the process of creating a Ruby on rails portal
This portal requires a lot of data feeding by the site owner's back-office personnel.
My client has this problem :
the office staff should not be able to access the back office interface from any other than his office computers
I have no idea how to achieve this. Is there a method for this?
Thanks in advance.
Edit:
Is tracking the Mac address a good solution.? is it possible if a ok?
I don't think that you should do anything in rails - this should be configured elsewhere. If rails is running on Apache then see mod_access.
The best way to set this up is to have the app hosted INSIDE the organisation's firewall. Best option - server lives inside the company on a subnet isolated entirely from direct internet access.
If you currently host outside the company, you can set up a firewall that prevents access from unknown IP addresses. You would only accept requests that come from the company's IP ranges. Ideally, you do this at the host/operating system level.
If that can't work, you can do add to your Rails authentication - detect the IP address of the request and if it is not in the company range, prevent access.
found a solution. Using a java applet one can access the machine's hardware details including MAC address. am using this idea.

How to tell ruby net libraries to use a particular network interface?

I'm doing some page scraping for a client and need to connect to their
vpn server. So I have the vpn client running on my linux box, and this
creates a new interface, say ppp0. Now, when I run Mechanize/open-uri,
etc. I need to be able to bind specifically to this particular
interface, because the other interfaces are to the internet in general.
How do I do this?
Thanks
If what you are connecting to over the VPN isn't also available over the open internet you shouldn't have to do anything and the internal TCP/IP networking stack should sort out the correct interface automatically.

Resources